HI Silvano, I tried with example set to see whether size is a problem.
set.seed(25) lst1<-lapply(1:100,function(i) as.data.frame(matrix(sample(1:100,8000*3,replace=TRUE),ncol=3))) length(lst1) system.time(res<-apply(abind(lst1,along=3),c(1,2),mean)) # user system elapsed # 0.360 0.012 0.373 dim(res) #[1] 8000 3 A.K. ----- Original Message ----- From: Silvano Cesar da Costa <silv...@uel.br> To: arun <smartpink...@yahoo.com> Cc: Sent: Wednesday, April 10, 2013 9:38 PM Subject: Re: [R] means in tables I performed all the procedures you described. I read each file with the command: lst2[[1]]; lst2[[2]]; lst2[[3]]; I don't had problems with this. I have 100 files with 8000 rows and 3 columns, each one. I took the test with only 3 tables. > In that case, I would first check with: > list.files() > > I used list.files(pattern=.txt) because some files in the directory were > not .txt. > > First you try with 3 files in a new directory and use: > list.files() > Then, > lapply(list.files(), function(x) read.table(x,sep="",header=TRUE)) > In the above line, there are chances for your delimiter to be different. > It could be sep="\t", or sep="," etc. > > Also, try to read files one by one from the directory and see whether each > of the files have the same delimiter etc. > > Please post what you got the above steps. > BTW, how big are those files? > > > > > > > ----- Original Message ----- > From: Silvano Cesar da Costa <silv...@uel.br> > To: arun <smartpink...@yahoo.com> > Cc: > Sent: Wednesday, April 10, 2013 9:17 PM > Subject: Re: [R] means in tables > > Sorry Arun, > > is correct. The message was: > > Error in abind(lst2, along = 3) : object 'lst2' not available > > > > > >> Hi, >> I just wonder whether you were able to read the 3 tables correctly. I >> am >> not able to correctly translate your error. Does it mean that Object >> ls2 >> not available...? >> >> >> Could you show str(lst2) >> Arun >> >> >> >> ----- Original Message ----- >> From: Silvano Cesar da Costa <silv...@uel.br> >> To: arun <smartpink...@yahoo.com> >> Cc: >> Sent: Wednesday, April 10, 2013 7:18 PM >> Subject: Re: [R] means in tables >> >> Thanks Arun. >> >> It was very cool. I did not know these commands. >> >> I applied it for 3 tables, but it doesn't work: >> >> setwd('/home/silvano/Dados/') >> list.files(pattern=".txt") >> >> lst2 <- lapply(list.files(pattern=".txt"), function(x) read.table(x, >> sep="", header=TRUE)) >> >> library(abind) >> apply(abind(lst2, along=3), c(1, 2), mean) >> >>> apply(abind(lst2, along=3), c(1, 2), mean) >> Erro em abind(lst2, along = 3) : objeto 'lst2' não encontrado >> >> I don't know why. >> >> >> >> >>> >>> Hi, >>> For loading number of datasets, you can use list.files() >>> >>> Example: >>> list.files(pattern=".txt") >>> #[1] "file1.txt" "file2.txt" "file3.txt" >>> lst2<-lapply(list.files(pattern=".txt"),function(x) >>> read.table(x,sep="",header=TRUE)) >>> lst2[[1]] >>> # col1 col2 >>> #1 1 0.5 >>> #2 2 0.2 >>> #3 3 0.3 >>> #4 4 0.3 >>> #5 5 0.1 >>> #6 6 0.2 >>> library(abind) >>> apply(abind(lst2,along=3),c(1,2),mean) >>> # col1 col2 >>> #[1,] 3 0.5000000 >>> #[2,] 4 0.4666667 >>> #[3,] 5 0.5666667 >>> #[4,] 6 0.2666667 >>> #[5,] 7 0.4000000 >>> #[6,] 8 0.2666667 >>> A.K. >>> >>> >>> >>> >>> >>> >>> >>> ----- Original Message ----- >>> From: arun <smartpink...@yahoo.com> >>> To: Silvano Cesar da Costa <silv...@uel.br> >>> Cc: R help <r-help@r-project.org> >>> Sent: Wednesday, April 10, 2013 6:28 PM >>> Subject: Re: [R] means in tables >>> >>> Hi, >>> >>> YOu can load all the datasets directly from the directory in a list. >>> >>> >>> >>> set.seed(25) >>> lst1<-lapply(1:100,function(i) >>> as.data.frame(matrix(sample(1:40,25,replace=TRUE),ncol=5))) >>> length(lst1) >>> #[1] 100 >>> library(abind) >>> >>> apply(abind(lst1,along=3),c(1,2),mean) >>> # V1 V2 V3 V4 V5 >>> #[1,] 20.37 21.95 19.51 22.77 22.00 >>> #[2,] 20.43 17.94 18.81 20.02 23.86 >>> #[3,] 23.00 18.64 21.15 21.61 22.12 >>> #[4,] 20.10 20.89 22.35 19.62 20.72 >>> #[5,] 19.36 20.97 19.36 21.02 20.48 >>> >>> mean(unlist(lapply(lst1,function(x) x[1,1]))) >>> #[1] 20.37 >>> mean(unlist(lapply(lst1,function(x) x[4,5]))) >>> #[1] 20.72 >>> mean(unlist(lapply(lst1,function(x) x[5,2]))) >>> #[1] 20.97 >>> >>> >>> A.K. >>> >>> ----- Original Message ----- >>> From: Silvano Cesar da Costa <silv...@uel.br> >>> To: arun <smartpink...@yahoo.com> >>> Cc: >>> Sent: Wednesday, April 10, 2013 6:02 PM >>> Subject: Re: [R] means in tables >>> >>> Hi Arun, >>> >>> I thought with an example with two tables I could generalize to the 100 >>> tables that have. It did not work. >>> >>> Actually have 100 tables in the format mentioned. I need to calculate >>> the >>> average of the elements that are in the same position in the 100 >>> tables. >>> >>> >>> >>> >>> >>>> Hi, >>>> This could be done in different ways: >>>> tab1<-read.table(text=" >>>> V1 V2 V3 V4 V5 >>>> 14.23 1.71 2.43 15.6 127 >>>> 13.20 1.78 2.14 11.2 100 >>>> 13.16 2.36 2.67 18.6 101 >>>> 14.37 1.95 2.50 16.8 113 >>>> 13.24 2.59 2.87 21.0 118 >>>> ",sep="",header=TRUE) >>>> tab2<-read.table(text=" >>>> V1 V2 V3 V4 V5 >>>> 1.23 1.1 2.3 1.6 17 >>>> 1.20 1.8 2.4 1.2 10 >>>> 1.16 2.6 2.7 1.6 11 >>>> 1.37 1.5 2.0 1.8 13 >>>> 1.24 2.9 2.7 2.0 18 >>>> ",sep="",header=TRUE) >>>> >>>> >>>> (tab1+tab2)/2 >>>> # V1 V2 V3 V4 V5 >>>> #1 7.73 1.405 2.365 8.6 72 >>>> #2 7.20 1.790 2.270 6.2 55 >>>> #3 7.16 2.480 2.685 10.1 56 >>>> #4 7.87 1.725 2.250 9.3 63 >>>> #5 7.24 2.745 2.785 11.5 68 >>>> >>>> >>>> #or >>>> library(abind) >>>> apply(abind(list(tab1,tab2),along=3),c(1,2),mean) >>>> # V1 V2 V3 V4 V5 >>>> #[1,] 7.73 1.405 2.365 8.6 72 >>>> #[2,] 7.20 1.790 2.270 6.2 55 >>>> #[3,] 7.16 2.480 2.685 10.1 56 >>>> #[4,] 7.87 1.725 2.250 9.3 63 >>>> #[5,] 7.24 2.745 2.785 11.5 68 >>>> >>>> >>>> #or >>>> >>>> library(plyr) >>>> dcast(adply(abind(list(tab1,tab2),along=3),c(1,2),mean),X1~X2,value.var="V1")[,-1] >>>> # V1 V2 V3 V4 V5 >>>> #1 7.73 1.405 2.365 8.6 72 >>>> #2 7.20 1.790 2.270 6.2 55 >>>> #3 7.16 2.480 2.685 10.1 56 >>>> #4 7.87 1.725 2.250 9.3 63 >>>> #5 7.24 2.745 2.785 11.5 68 >>>> >>>> #or >>>> aaply(abind(list(tab1,tab2),along=3),c(1,2),mean) >>>> # X2 >>>> #X1 V1 V2 V3 V4 V5 >>>> # 1 7.73 1.405 2.365 8.6 72 >>>> # 2 7.20 1.790 2.270 6.2 55 >>>> # 3 7.16 2.480 2.685 10.1 56 >>>> # 4 7.87 1.725 2.250 9.3 63 >>>> # 5 7.24 2.745 2.785 11.5 68 >>>> >>>> >>>> A.K. >>>> >>>> >>>> >>>> ----- Original Message ----- >>>> From: Silvano Cesar da Costa <silv...@uel.br> >>>> To: r-help@r-project.org >>>> Cc: >>>> Sent: Wednesday, April 10, 2013 12:07 PM >>>> Subject: [R] means in tables >>>> >>>> Hi. >>>> >>>> I have 2 tables, with same dimensions (8000 x 5). Something like: >>>> >>>> tab1: >>>> >>>> V1 V2 V3 V4 V5 >>>> 14.23 1.71 2.43 15.6 127 >>>> 13.20 1.78 2.14 11.2 100 >>>> 13.16 2.36 2.67 18.6 101 >>>> 14.37 1.95 2.50 16.8 113 >>>> 13.24 2.59 2.87 21.0 118 >>>> >>>> tab2: >>>> >>>> V1 V2 V3 V4 V5 >>>> 1.23 1.1 2.3 1.6 17 >>>> 1.20 1.8 2.4 1.2 10 >>>> 1.16 2.6 2.7 1.6 11 >>>> 1.37 1.5 2.0 1.8 13 >>>> 1.24 2.9 2.7 2.0 18 >>>> >>>> I need generate a table of averages, the elements in the same position >>>> in >>>> both tables, like: >>>> >>>> tab3: >>>> (14.23 + 1.23)/2 (1.71+1.1)/2 (127+17)/2 >>>> >>>> and so on >>>> >>>> I tried the program: >>>> >>>> Médias = matrix(NA, nrow(tab1), ncol(tab1)) >>>> for(i in 1:nrow(tab1)){ >>>> for(j in 1:ncol(tab1)){ >>>> for(k in 1:nrow(tab2)){ >>>> for(l in 1:ncol(tab2)){ >>>> Médias = tab1$i[j] >>>> }}}} >>>> >>>> Médias >>>> >>>> but it does't work. I don't know programming. >>>> >>>> How can I do this? >>>> >>>> Thanks, >>>> >>>> >>>> --------------------------------------------- >>>> Silvano Cesar da Costa >>>> >>>> Universidade Estadual de Londrina >>>> Centro de Ciências Exatas >>>> Departamento de Estatística >>>> >>>> Fone: (43) 3371-4346 >>>> >>>> ______________________________________________ >>>> R-help@r-project.org mailing list >>>> https://stat.ethz.ch/mailman/listinfo/r-help >>>> PLEASE do read the posting guide >>>> http://www.R-project.org/posting-guide.html >>>> and provide commented, minimal, self-contained, reproducible code. >>>> >>>> >>>> >>> >>> >>> --------------------------------------------- >>> Silvano Cesar da Costa >>> >>> Universidade Estadual de Londrina >>> Centro de Ciências Exatas >>> Departamento de Estatística >>> >>> Fone: (43) 3371-4346 >>> --------------------------------------------- >>> >>> >>> >> >> >> --------------------------------------------- >> Silvano Cesar da Costa >> >> Universidade Estadual de Londrina >> Centro de Ciências Exatas >> Departamento de Estatística >> >> Fone: (43) 3371-4346 >> --------------------------------------------- >> >> > > > --------------------------------------------- > Silvano Cesar da Costa > > Universidade Estadual de Londrina > Centro de Ciências Exatas > Departamento de Estatística > > Fone: (43) 3371-4346 > --------------------------------------------- > > --------------------------------------------- Silvano Cesar da Costa Universidade Estadual de Londrina Centro de Ciências Exatas Departamento de Estatística Fone: (43) 3371-4346 --------------------------------------------- ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.