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 --------------------------------------------- ______________________________________________ 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.