Subhamitra Patra
2020-May-08 13:25 UTC
[R] [R ] Writing loop to estimate ARCH test for a multiple columns of a data frame?
Dear Sir, Thank you very much for your wonderful suggestion for my problem. Your suggested code has excellently worked and successfully extracted the statistics and p-value in another R object. Concerning your last suggestion, I attempted to separate the strings with TAB character in the "spout" object by using different alternative packages like dplyr, tidyr, qdap, ans also by using split,strsplit function so that can export the statistics and p-values for each column to excel, and later to the MSword file, but got the below error. By using the split function, I wrote the code as, *string[] split = s.Split(spout, '\t')* where I got the following errors. Error: unexpected symbol in "string[] split" Error: unexpected symbol in "string[[]]split" Error in strsplit(row, "\t") : non-character argument Then I tried with strsplit function by the below code *strsplit(spout, split)* But, got the below error as Error in as.character(split) : cannot coerce type 'closure' to vector of type 'character'. Then used dplyr and tidyr package and the wrote the below code library(dplyr) library(tidyr) *separate(spout,value,into=c(?ChiSq?,?p?),sep=?,?)* *separate(spout,List of length 12,into=c(?ChiSq?,?p?),sep="\t")* But, got the errors as, Error: unexpected input in "separate(spout,value,into=c(?" Error: unexpected symbol in "separate(spout,List of" Then used qdap package with the code below *colsplit2df(spout,, c("ChiSq", "p"), ",")* *colsplit2df(spout,, c("ChiSq", "p"), sep = "\t")* But got the following errors Error in dataframe[, splitcol] : incorrect number of dimensions In addition: Warning message: In colsplit2df_helper(dataframe = dataframe, splitcol = splitcols[i], : dataframe object is not of the class data.frame Error in dataframe[, splitcol] : incorrect number of dimensions In addition: Warning message: In colsplit2df_helper(dataframe = dataframe, splitcol = splitcols[i], : dataframe object is not of the class data.frame Sir, please suggest me where I am going wrong in the above to separate string in the "spout" object. Thank you very much for your help. [image: Mailtrack] <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> Sender notified by Mailtrack <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> 05/08/20, 06:51:46 PM On Fri, May 8, 2020 at 4:47 PM Jim Lemon <drjimlemon at gmail.com> wrote:> 1) In general, *apply functions return a list with the number of elements > equal to the number of columns or other elements of the input data. You can > assign that list as I have to "spout" in the first example. > > 2) spout<-list() assigns the name "spout" to an empty list. As we are > processing columns 2 to 12 of the input data, spout[[i-1]] assigns the > results to elements 1 to 11 of the list "spout". Just a low trick. > > 1a) Yes, you can create a "wrapper" function that will return only the > statistic and p.value. > > # create a function that returns only the > # statistic and p.value as a string > archStatP<-function(x) { > archout<-ArchTest(x) > return(sprintf("ChiSq = %f, p = %f",archout$statistic,archout$p.value)) > } > # using "lapply", run the test on each column > spout<-lapply(sp_8_5[,2:12],archStatP) > > Note that I should have used "lapply". I didn't check the output carefully > enough. > > 2a) Now you only have to separate the strings in "spout" with TAB > characters and import the result into Excel. I have to wash the dishes, so > you're on your own. > > Jim > > On Fri, May 8, 2020 at 8:26 PM Subhamitra Patra < > subhamitra.patra at gmail.com> wrote: > >> Dear Sir, >> >> Thank you very much for such an excellent solution to my problem. I was >> trying sapply function since last days, but was really unable to write >> properly. Now, I understood my mistake in using sapply function in the >> code. Therefore, I have two queries regarding this which I want to discuss >> here just for my learning purpose. >> >> 1. While using sapply function for estimating one method across the >> columns of a data frame, one needs to define the list of the output table >> after using sapply so that the test results for each column will be >> consistently stored in an output object, right? >> >> 2. In the spout<- list() command, what spout[[i-1]] indicates? >> >> Sir, one more possibility which I would like to ask related to my above >> problem just to learn for further R programming language. >> >> After running your suggested code, all the results for each column are >> being stored in the spout object. From this, I need only the statistics and >> P-value for each column. So, my queries are: >> >> 1. Is there any way to extract only two values (i.e., statistics and >> p-value) for each column that stored in spout object and save these two >> values in another R data frame for each column? >> or >> 2. Is there any possibility that the statistics and p-value >> calculated for each column can directly export to a word file in a table >> format (having 4 columns and 3 rows). In particular, is it possible to >> extract both statistic and p-value results for each column to an MS word >> file with the format of A1, A2, A3, A4 column results in 1st row, A5, A6, >> A7, A8 column results in 2nd row, and A9, A10, A11, A12 column results in >> the 3rd row of the table? >> >> >> Like before, your suggestion will definitely help me to learn the >> advanced R language. >> >> Thank you very much for your help. >> >> [image: Mailtrack] >> <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> Sender >> notified by >> Mailtrack >> <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> 05/08/20, >> 03:47:26 PM >> >> On Fri, May 8, 2020 at 2:37 PM Jim Lemon <drjimlemon at gmail.com> wrote: >> >>> Hi Subhamitra, >>> This isn't too hard: >>> >>> # read in the sample data that was >>> # saved in the file "sp_8_5.tab" >>> sp_8_5<-read.table("sp_8_5.tab",sep="\t", >>> header=TRUE,stringsAsFactors=FALSE) >>> library(tseries) >>> library(FinTS) >>> # using "sapply", run the test on each column >>> spout<-sapply(sp_8_5[,2:12],ArchTest) >>> >>> The list "spout" contains the test results. If you really want to use a >>> loop: >>> >>> spout<-list() >>> for(i in 2:12) spout[[i-1]]<-ArchTest(sp_8_5[,i]) >>> >>> Jim >>> >>> >>> On Fri, May 8, 2020 at 5:27 PM Subhamitra Patra < >>> subhamitra.patra at gmail.com> wrote: >>> >>>> Dear Sir, >>>> >>>> Herewith I am pasting a part of my sample data having 12 columns below, >>>> and want to calculate ARCH test for the 12 columns by using a loop. >>>> >>>> >> >> -- >> *Best Regards,* >> *Subhamitra Patra* >> *Phd. Research Scholar* >> *Department of Humanities and Social Sciences* >> *Indian Institute of Technology, Kharagpur* >> *INDIA* >> >-- *Best Regards,* *Subhamitra Patra* *Phd. Research Scholar* *Department of Humanities and Social Sciences* *Indian Institute of Technology, Kharagpur* *INDIA* [[alternative HTML version deleted]]
Jim Lemon
2020-May-09 03:28 UTC
[R] [R ] Writing loop to estimate ARCH test for a multiple columns of a data frame?
Hi Subhamitra, I have washed the dishes and had a night's sleep, so I can now deal with your text munging problem. First, I'll reiterate the solution I sent: sp_8_5<-read.table("sp_8_5.tab",sep="\t", header=TRUE,stringsAsFactors=FALSE) library(tseries) library(FinTS) # create a function that returns only the # statistic and p.value as a string archStatP<-function(x) { archout<-ArchTest(x) # I have truncated the values here return(sprintf("ChiSq = %.1f, p = %.3f",archout$statistic,archout$p.value)) } # using "lapply", run the test on each column spout<-lapply(sp_8_5[,2:13],archStatP) If you look at "spout" you will see that it is a list of 12 character strings. I arranged this as you seem to want the contents of a 3x4 table in a document. This is one way to do it, there are others. First, create a text table of the desired dimensions. I'll do it with loops as you seem to be familiar with them: # open a text file sink("sp_8_5.txt") for(row in 0:2) { for(column in 1:4) cat(spout[[column+row*4]],ifelse(column < 4,"\t","\n")) } sink() If you open this file in a text editor (e.g. Notepad) you will see that it contains 3 lines (rows), each with four TAB separated strings. Now to import this into a word processing document. I don't have MS Word, so I'll do it with Libre Office Writer and hope that the procedure is similar. Move to where you want the table in your document Select Insert|Text from file from the top menu Select (highlight) the text you have imported Select Convert|Text to table from the top menu The highlighted area should become a table. I had to reduce the font size from 12 to 10 to get the strings to fit into the cells. There are probably a few more changes that you will want, so let me know if you strike trouble. Jim On Fri, May 8, 2020 at 11:28 PM Subhamitra Patra <subhamitra.patra at gmail.com> wrote:> Dear Sir, > > Thank you very much for your wonderful suggestion for my problem. Your > suggested code has excellently worked and successfully extracted the > statistics and p-value in another R object. > > Concerning your last suggestion, I attempted to separate the strings with > TAB character in the "spout" object by using different alternative packages > like dplyr, tidyr, qdap, ans also by using split,strsplit function so that > can export the statistics and p-values for each column to excel, and later > to the MSword file, but got the below error. > > By using the split function, I wrote the code as, > *string[] split = s.Split(spout, '\t')* > where I got the following errors. > Error: unexpected symbol in "string[] split" > Error: unexpected symbol in "string[[]]split" > Error in strsplit(row, "\t") : non-character argument > > Then I tried with strsplit function by the below code > *strsplit(spout, split)* > But, got the below error as > Error in as.character(split) : > cannot coerce type 'closure' to vector of type 'character'. > > Then used dplyr and tidyr package and the wrote the below code > library(dplyr) > library(tidyr) > *separate(spout,value,into=c(?ChiSq?,?p?),sep=?,?)* > *separate(spout,List of length 12,into=c(?ChiSq?,?p?),sep="\t")* > But, got the errors as, > Error: unexpected input in "separate(spout,value,into=c(?" > Error: unexpected symbol in "separate(spout,List of" > > Then used qdap package with the code below > > *colsplit2df(spout,, c("ChiSq", "p"), ",")* > *colsplit2df(spout,, c("ChiSq", "p"), sep = "\t")* > But got the following errors > Error in dataframe[, splitcol] : incorrect number of dimensions > In addition: Warning message: > In colsplit2df_helper(dataframe = dataframe, splitcol = splitcols[i], : > dataframe object is not of the class data.frame > Error in dataframe[, splitcol] : incorrect number of dimensions > In addition: Warning message: > In colsplit2df_helper(dataframe = dataframe, splitcol = splitcols[i], : > dataframe object is not of the class data.frame > > Sir, please suggest me where I am going wrong in the above to separate > string in the "spout" object. > > Thank you very much for your help. > > [image: Mailtrack] > <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> Sender > notified by > Mailtrack > <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> 05/08/20, > 06:51:46 PM > > On Fri, May 8, 2020 at 4:47 PM Jim Lemon <drjimlemon at gmail.com> wrote: > >> 1) In general, *apply functions return a list with the number of elements >> equal to the number of columns or other elements of the input data. You can >> assign that list as I have to "spout" in the first example. >> >> 2) spout<-list() assigns the name "spout" to an empty list. As we are >> processing columns 2 to 12 of the input data, spout[[i-1]] assigns the >> results to elements 1 to 11 of the list "spout". Just a low trick. >> >> 1a) Yes, you can create a "wrapper" function that will return only the >> statistic and p.value. >> >> # create a function that returns only the >> # statistic and p.value as a string >> archStatP<-function(x) { >> archout<-ArchTest(x) >> return(sprintf("ChiSq = %f, p = %f",archout$statistic,archout$p.value)) >> } >> # using "lapply", run the test on each column >> spout<-lapply(sp_8_5[,2:12],archStatP) >> >> Note that I should have used "lapply". I didn't check the output >> carefully enough. >> >> 2a) Now you only have to separate the strings in "spout" with TAB >> characters and import the result into Excel. I have to wash the dishes, so >> you're on your own. >> >> Jim >> >> On Fri, May 8, 2020 at 8:26 PM Subhamitra Patra < >> subhamitra.patra at gmail.com> wrote: >> >>> Dear Sir, >>> >>> Thank you very much for such an excellent solution to my problem. I was >>> trying sapply function since last days, but was really unable to write >>> properly. Now, I understood my mistake in using sapply function in the >>> code. Therefore, I have two queries regarding this which I want to discuss >>> here just for my learning purpose. >>> >>> 1. While using sapply function for estimating one method across the >>> columns of a data frame, one needs to define the list of the output table >>> after using sapply so that the test results for each column will be >>> consistently stored in an output object, right? >>> >>> 2. In the spout<- list() command, what spout[[i-1]] indicates? >>> >>> Sir, one more possibility which I would like to ask related to my above >>> problem just to learn for further R programming language. >>> >>> After running your suggested code, all the results for each column are >>> being stored in the spout object. From this, I need only the statistics and >>> P-value for each column. So, my queries are: >>> >>> 1. Is there any way to extract only two values (i.e., statistics and >>> p-value) for each column that stored in spout object and save these two >>> values in another R data frame for each column? >>> or >>> 2. Is there any possibility that the statistics and p-value >>> calculated for each column can directly export to a word file in a table >>> format (having 4 columns and 3 rows). In particular, is it possible to >>> extract both statistic and p-value results for each column to an MS word >>> file with the format of A1, A2, A3, A4 column results in 1st row, A5, A6, >>> A7, A8 column results in 2nd row, and A9, A10, A11, A12 column results in >>> the 3rd row of the table? >>> >>> >>> Like before, your suggestion will definitely help me to learn the >>> advanced R language. >>> >>> Thank you very much for your help. >>> >>> [image: Mailtrack] >>> <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> Sender >>> notified by >>> Mailtrack >>> <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> 05/08/20, >>> 03:47:26 PM >>> >>> On Fri, May 8, 2020 at 2:37 PM Jim Lemon <drjimlemon at gmail.com> wrote: >>> >>>> Hi Subhamitra, >>>> This isn't too hard: >>>> >>>> # read in the sample data that was >>>> # saved in the file "sp_8_5.tab" >>>> sp_8_5<-read.table("sp_8_5.tab",sep="\t", >>>> header=TRUE,stringsAsFactors=FALSE) >>>> library(tseries) >>>> library(FinTS) >>>> # using "sapply", run the test on each column >>>> spout<-sapply(sp_8_5[,2:12],ArchTest) >>>> >>>> The list "spout" contains the test results. If you really want to use a >>>> loop: >>>> >>>> spout<-list() >>>> for(i in 2:12) spout[[i-1]]<-ArchTest(sp_8_5[,i]) >>>> >>>> Jim >>>> >>>> >>>> On Fri, May 8, 2020 at 5:27 PM Subhamitra Patra < >>>> subhamitra.patra at gmail.com> wrote: >>>> >>>>> Dear Sir, >>>>> >>>>> Herewith I am pasting a part of my sample data having 12 columns >>>>> below, and want to calculate ARCH test for the 12 columns by using a loop. >>>>> >>>>> >>> >>> -- >>> *Best Regards,* >>> *Subhamitra Patra* >>> *Phd. Research Scholar* >>> *Department of Humanities and Social Sciences* >>> *Indian Institute of Technology, Kharagpur* >>> *INDIA* >>> >> > > -- > *Best Regards,* > *Subhamitra Patra* > *Phd. Research Scholar* > *Department of Humanities and Social Sciences* > *Indian Institute of Technology, Kharagpur* > *INDIA* >[[alternative HTML version deleted]]
Subhamitra Patra
2020-May-13 11:28 UTC
[R] [R ] Writing loop to estimate ARCH test for a multiple columns of a data frame?
Dear Sir, I am so sorry that due to certain inconveniences, I became late to try your suggested code and to reply to your email. Thank you very much for your wonderful solution and suggestion for my problem. Like before, Your suggested code has worked awesome. Even, I successfully imported the required output to the word following your suggested similar path for the Libre office editor. But, I have certain queries on your suggested code mentioned below which I would like to discuss with you for my further learning. 1. Is there any difference between reading the tab and text file in R because when I used sp_8_5<-read.table("sp_8_5.tab",sep="\t", header=TRUE,stringsAsFactors=FALSE) it had thrown some error. But, when I changed the sp_8_5.tab into sp_8_5.text, it worked. So, here my query, "does R read tab and text file differently, however, both the files are similar"? 2. In the code, "return(sprintf("ChiSq = %.1f, p %.3f",archout$statistic,archout$p.value))", sprintf stands for printing the particular results (i.e., statistics and p-value), right? Further, "ChiSq %.1f, p = %.3f" indicate the calling the values up to 1 and 3 decimal points respectively, right? kindly correct me if I am worng in my interpretation. 3. While opening a text file, sink("sp_8_5.txt") for(row in 0:2) { for(column in 1:4) cat(spout[[column+row*4]],ifelse(column < 4,"\t","\n")) } sink() 3.1. what sink indicates, I think here sink calls for the arranging of the statistics and p-values in the required 3*4 dimension in the generated text file, right? Please educate me. 3.2 Hence, the results are arranged in 3 rows and 4 columns in the text file. I understand the code for arranging loop for columns [i.e., for(column in 1:4) ], but i didn't understand the loop for row [i.e., for(row in 0:2)]. In particular, what is the logic behind the setting of 2 rather than 3 for 3 rows in "for(row in 0:2)"? 3.3. In the code, "cat(spout[[column+row*4]],ifelse(column < 4,"\t","\n"))", what cat indicates? what is the logic behind [column+row*4] and ifelse(column < 4,"\t","\n") ? This is my major query in the entire code. Please help me to understand this line. Along with the above queries in your suggested code, I have one more query that is it possible to rename each row and column? Actually, why I am asking this because I have data from 80 countries, and each country has 5 columns of data arranging in 5 columns. In other words, the total number of columns in my study is 400. While doing the ARCH test for each column, there may be a mistake to arrange the results in the text file. Thus, I want to arrange the resulted statistics for 5 columns (for instance A1, A2, A3, A4, A5) for each country in the following way which I think will definitely avoid any kind of typo-mistake in arranging output in the text file. In other words, Each row will have results for each country arranged in 5 columns for the particular 5 variables which help to identify the particular result for the particular columns of the particular countries in an easy manner. Country A1 A2 A3 A4 A5 India 0.65 0.33 0.32 0.12 0.34 Israel 0.35 0.05 0.10 0.15 0.23 Australia 0.43 0.25 0.45 0.55 0.56 and so on. Thank you very much, Sir, for educating a R learner for which I shall be always grateful to you. [image: Mailtrack] <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> Sender notified by Mailtrack <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> 05/13/20, 04:56:34 PM On Sat, May 9, 2020 at 8:58 AM Jim Lemon <drjimlemon at gmail.com> wrote:> Hi Subhamitra, > I have washed the dishes and had a night's sleep, so I can now deal with > your text munging problem. First, I'll reiterate the solution I sent: > > sp_8_5<-read.table("sp_8_5.tab",sep="\t", > header=TRUE,stringsAsFactors=FALSE) > library(tseries) > library(FinTS) > # create a function that returns only the > # statistic and p.value as a string > archStatP<-function(x) { > archout<-ArchTest(x) > # I have truncated the values here > return(sprintf("ChiSq = %.1f, p > %.3f",archout$statistic,archout$p.value)) > } > # using "lapply", run the test on each column > spout<-lapply(sp_8_5[,2:13],archStatP) > > If you look at "spout" you will see that it is a list of 12 character > strings. I arranged this as you seem to want the contents of a 3x4 table in > a document. This is one way to do it, there are others. > > First, create a text table of the desired dimensions. I'll do it with > loops as you seem to be familiar with them: > > # open a text file > sink("sp_8_5.txt") > for(row in 0:2) { > for(column in 1:4) > cat(spout[[column+row*4]],ifelse(column < 4,"\t","\n")) > } > sink() > > If you open this file in a text editor (e.g. Notepad) you will see that it > contains 3 lines (rows), each with four TAB separated strings. Now to > import this into a word processing document. I don't have MS Word, so I'll > do it with Libre Office Writer and hope that the procedure is similar. > > Move to where you want the table in your document > Select Insert|Text from file from the top menu > Select (highlight) the text you have imported > Select Convert|Text to table from the top menu > > The highlighted area should become a table. I had to reduce the font size > from 12 to 10 to get the strings to fit into the cells. > > There are probably a few more changes that you will want, so let me know > if you strike trouble. > > Jim > > > On Fri, May 8, 2020 at 11:28 PM Subhamitra Patra < > subhamitra.patra at gmail.com> wrote: > >> Dear Sir, >> >> Thank you very much for your wonderful suggestion for my problem. Your >> suggested code has excellently worked and successfully extracted the >> statistics and p-value in another R object. >> >> Concerning your last suggestion, I attempted to separate the strings with >> TAB character in the "spout" object by using different alternative packages >> like dplyr, tidyr, qdap, ans also by using split,strsplit function so that >> can export the statistics and p-values for each column to excel, and later >> to the MSword file, but got the below error. >> >> By using the split function, I wrote the code as, >> *string[] split = s.Split(spout, '\t')* >> where I got the following errors. >> Error: unexpected symbol in "string[] split" >> Error: unexpected symbol in "string[[]]split" >> Error in strsplit(row, "\t") : non-character argument >> >> Then I tried with strsplit function by the below code >> *strsplit(spout, split)* >> But, got the below error as >> Error in as.character(split) : >> cannot coerce type 'closure' to vector of type 'character'. >> >> Then used dplyr and tidyr package and the wrote the below code >> library(dplyr) >> library(tidyr) >> *separate(spout,value,into=c(?ChiSq?,?p?),sep=?,?)* >> *separate(spout,List of length 12,into=c(?ChiSq?,?p?),sep="\t")* >> But, got the errors as, >> Error: unexpected input in "separate(spout,value,into=c(?" >> Error: unexpected symbol in "separate(spout,List of" >> >> Then used qdap package with the code below >> >> *colsplit2df(spout,, c("ChiSq", "p"), ",")* >> *colsplit2df(spout,, c("ChiSq", "p"), sep = "\t")* >> But got the following errors >> Error in dataframe[, splitcol] : incorrect number of dimensions >> In addition: Warning message: >> In colsplit2df_helper(dataframe = dataframe, splitcol = splitcols[i], : >> dataframe object is not of the class data.frame >> Error in dataframe[, splitcol] : incorrect number of dimensions >> In addition: Warning message: >> In colsplit2df_helper(dataframe = dataframe, splitcol = splitcols[i], : >> dataframe object is not of the class data.frame >> >> Sir, please suggest me where I am going wrong in the above to separate >> string in the "spout" object. >> >> Thank you very much for your help. >> >> [image: Mailtrack] >> <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> Sender >> notified by >> Mailtrack >> <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> 05/08/20, >> 06:51:46 PM >> >> On Fri, May 8, 2020 at 4:47 PM Jim Lemon <drjimlemon at gmail.com> wrote: >> >>> 1) In general, *apply functions return a list with the number of >>> elements equal to the number of columns or other elements of the input >>> data. You can assign that list as I have to "spout" in the first example. >>> >>> 2) spout<-list() assigns the name "spout" to an empty list. As we are >>> processing columns 2 to 12 of the input data, spout[[i-1]] assigns the >>> results to elements 1 to 11 of the list "spout". Just a low trick. >>> >>> 1a) Yes, you can create a "wrapper" function that will return only the >>> statistic and p.value. >>> >>> # create a function that returns only the >>> # statistic and p.value as a string >>> archStatP<-function(x) { >>> archout<-ArchTest(x) >>> return(sprintf("ChiSq = %f, p = %f",archout$statistic,archout$p.value)) >>> } >>> # using "lapply", run the test on each column >>> spout<-lapply(sp_8_5[,2:12],archStatP) >>> >>> Note that I should have used "lapply". I didn't check the output >>> carefully enough. >>> >>> 2a) Now you only have to separate the strings in "spout" with TAB >>> characters and import the result into Excel. I have to wash the dishes, so >>> you're on your own. >>> >>> Jim >>> >>> On Fri, May 8, 2020 at 8:26 PM Subhamitra Patra < >>> subhamitra.patra at gmail.com> wrote: >>> >>>> Dear Sir, >>>> >>>> Thank you very much for such an excellent solution to my problem. I was >>>> trying sapply function since last days, but was really unable to write >>>> properly. Now, I understood my mistake in using sapply function in the >>>> code. Therefore, I have two queries regarding this which I want to discuss >>>> here just for my learning purpose. >>>> >>>> 1. While using sapply function for estimating one method across the >>>> columns of a data frame, one needs to define the list of the output table >>>> after using sapply so that the test results for each column will be >>>> consistently stored in an output object, right? >>>> >>>> 2. In the spout<- list() command, what spout[[i-1]] indicates? >>>> >>>> Sir, one more possibility which I would like to ask related to my above >>>> problem just to learn for further R programming language. >>>> >>>> After running your suggested code, all the results for each column are >>>> being stored in the spout object. From this, I need only the statistics and >>>> P-value for each column. So, my queries are: >>>> >>>> 1. Is there any way to extract only two values (i.e., statistics and >>>> p-value) for each column that stored in spout object and save these two >>>> values in another R data frame for each column? >>>> or >>>> 2. Is there any possibility that the statistics and p-value >>>> calculated for each column can directly export to a word file in a table >>>> format (having 4 columns and 3 rows). In particular, is it possible to >>>> extract both statistic and p-value results for each column to an MS word >>>> file with the format of A1, A2, A3, A4 column results in 1st row, A5, A6, >>>> A7, A8 column results in 2nd row, and A9, A10, A11, A12 column results in >>>> the 3rd row of the table? >>>> >>>> >>>> Like before, your suggestion will definitely help me to learn the >>>> advanced R language. >>>> >>>> Thank you very much for your help. >>>> >>>> [image: Mailtrack] >>>> <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> Sender >>>> notified by >>>> Mailtrack >>>> <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> 05/08/20, >>>> 03:47:26 PM >>>> >>>> On Fri, May 8, 2020 at 2:37 PM Jim Lemon <drjimlemon at gmail.com> wrote: >>>> >>>>> Hi Subhamitra, >>>>> This isn't too hard: >>>>> >>>>> # read in the sample data that was >>>>> # saved in the file "sp_8_5.tab" >>>>> sp_8_5<-read.table("sp_8_5.tab",sep="\t", >>>>> header=TRUE,stringsAsFactors=FALSE) >>>>> library(tseries) >>>>> library(FinTS) >>>>> # using "sapply", run the test on each column >>>>> spout<-sapply(sp_8_5[,2:12],ArchTest) >>>>> >>>>> The list "spout" contains the test results. If you really want to use >>>>> a loop: >>>>> >>>>> spout<-list() >>>>> for(i in 2:12) spout[[i-1]]<-ArchTest(sp_8_5[,i]) >>>>> >>>>> Jim >>>>> >>>>> >>>>> On Fri, May 8, 2020 at 5:27 PM Subhamitra Patra < >>>>> subhamitra.patra at gmail.com> wrote: >>>>> >>>>>> Dear Sir, >>>>>> >>>>>> Herewith I am pasting a part of my sample data having 12 columns >>>>>> below, and want to calculate ARCH test for the 12 columns by using a loop. >>>>>> >>>>>> >>>> >>>> -- >>>> *Best Regards,* >>>> *Subhamitra Patra* >>>> *Phd. Research Scholar* >>>> *Department of Humanities and Social Sciences* >>>> *Indian Institute of Technology, Kharagpur* >>>> *INDIA* >>>> >>> >> >> -- >> *Best Regards,* >> *Subhamitra Patra* >> *Phd. Research Scholar* >> *Department of Humanities and Social Sciences* >> *Indian Institute of Technology, Kharagpur* >> *INDIA* >> >-- *Best Regards,* *Subhamitra Patra* *Phd. Research Scholar* *Department of Humanities and Social Sciences* *Indian Institute of Technology, Kharagpur* *INDIA* [[alternative HTML version deleted]]