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
On Apr 10, 2013, at 11:07 AM, Silvano Cesar da Costa <silvano at uel.br> wrote:> 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,From the output above, you would appear to have two data frames. The hint is the column names (V1 ... V5), which is the default for data frames when column names are not otherwise specified. See ?data.frame for more information. You should consider reading An Introduction To R, which will provide a foundational overview of many of these concepts. In this case, since all values are numeric, the data frames will behave as if they were matrices, which means that we can use R's vectorized approach to adding the two objects together and then just divide by 2. There is not a need to use multiple for() loops. Thus:> tab1V1 V2 V3 V4 V5 1 14.23 1.71 2.43 15.6 127 2 13.20 1.78 2.14 11.2 100 3 13.16 2.36 2.67 18.6 101 4 14.37 1.95 2.50 16.8 113 5 13.24 2.59 2.87 21.0 118> tab2V1 V2 V3 V4 V5 1 1.23 1.1 2.3 1.6 17 2 1.20 1.8 2.4 1.2 10 3 1.16 2.6 2.7 1.6 11 4 1.37 1.5 2.0 1.8 13 5 1.24 2.9 2.7 2.0 18> tab1 + tab2V1 V2 V3 V4 V5 1 15.46 2.81 4.73 17.2 144 2 14.40 3.58 4.54 12.4 110 3 14.32 4.96 5.37 20.2 112 4 15.74 3.45 4.50 18.6 126 5 14.48 5.49 5.57 23.0 136> (tab1 + tab2) / 2V1 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 Regards, Marc Schwartz
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 <silvano at uel.br> To: r-help at 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 at 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.
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 <silvano at uel.br> To: arun <smartpink111 at 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 <silvano at uel.br> > To: r-help at 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 at 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 ---------------------------------------------
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 <silvano at uel.br> To: arun <smartpink111 at 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 <silvano at uel.br> > To: arun <smartpink111 at 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 <silvano at uel.br> >> To: arun <smartpink111 at 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 <smartpink111 at yahoo.com> >>> To: Silvano Cesar da Costa <silvano at uel.br> >>> Cc: R help <r-help at 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 <silvano at uel.br> >>> To: arun <smartpink111 at 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 <silvano at uel.br> >>>> To: r-help at 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 at 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 ---------------------------------------------
HI Silvano, No problem. Just wanted to make sure that it worked. Regards, A.K. ----- Original Message ----- From: Silvano Cesar da Costa <silvano at uel.br> To: arun <smartpink111 at yahoo.com> Cc: Sent: Wednesday, April 10, 2013 10:34 PM Subject: Re: [R] means in tables Arun, this code work very well: setwd('c:/Dados/') list.files(pattern=".txt") lst2 = lapply(list.files(pattern=".txt"), function(x) read.table(x, sep="", header=F)) library(abind) (medias = apply(abind(lst2, along=3), c(1,2), mean)) I want to thank you for your precious help. Without it I couldn't do it. Thanks alot,> HI Silvano, > > Can you send the output of? > ?dput(lapply(lst1,function(x) head(x))[1:3]) > > > ? > > It seems strange that you were able to read but can't perform the task. > Arun > > > > ----- Original Message ----- > From: Silvano Cesar da Costa <silvano at uel.br> > To: arun <smartpink111 at 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 <silvano at uel.br> >> To: arun <smartpink111 at 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 <silvano at uel.br> >>> To: arun <smartpink111 at 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 <smartpink111 at yahoo.com> >>>> To: Silvano Cesar da Costa <silvano at uel.br> >>>> Cc: R help <r-help at 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 <silvano at uel.br> >>>> To: arun <smartpink111 at 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 <silvano at uel.br> >>>>> To: r-help at 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 at 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 > --------------------------------------------- > >--------------------------------------------- Silvano Cesar da Costa Universidade Estadual de Londrina Centro de Ci?ncias Exatas Departamento de Estat?stica Fone: (43) 3371-4346 ---------------------------------------------
Hi Silvano, Just to add: If you need to use the first option: set.seed(25) ?lst1<-lapply(1:100,function(i) as.data.frame(matrix(sample(1:100,8000*3,replace=TRUE),ncol=3))) system.time(res1<-eval(parse(text=paste(paste("lst1","[[",seq_along(lst1),"]]",sep=""),collapse="+")))/length(lst1)) # user? system elapsed ?# 0.060?? 0.000?? 0.063 #faster system.time(res<-apply(abind(lst1,along=3),c(1,2),mean)) #?? user? system elapsed ?# 0.356?? 0.024?? 0.380? ? res<- as.data.frame(res) identical(res,res1) #[1] TRUE A.K. ----- Original Message ----- From: Silvano Cesar da Costa <silvano at uel.br> To: arun <smartpink111 at yahoo.com> Cc: Sent: Wednesday, April 10, 2013 10:34 PM Subject: Re: [R] means in tables Arun, this code work very well: setwd('c:/Dados/') list.files(pattern=".txt") lst2 = lapply(list.files(pattern=".txt"), function(x) read.table(x, sep="", header=F)) library(abind) (medias = apply(abind(lst2, along=3), c(1,2), mean)) I want to thank you for your precious help. Without it I couldn't do it. Thanks alot,> HI Silvano, > > Can you send the output of? > ?dput(lapply(lst1,function(x) head(x))[1:3]) > > > ? > > It seems strange that you were able to read but can't perform the task. > Arun > > > > ----- Original Message ----- > From: Silvano Cesar da Costa <silvano at uel.br> > To: arun <smartpink111 at 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 <silvano at uel.br> >> To: arun <smartpink111 at 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 <silvano at uel.br> >>> To: arun <smartpink111 at 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 <smartpink111 at yahoo.com> >>>> To: Silvano Cesar da Costa <silvano at uel.br> >>>> Cc: R help <r-help at 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 <silvano at uel.br> >>>> To: arun <smartpink111 at 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 <silvano at uel.br> >>>>> To: r-help at 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 at 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 > --------------------------------------------- > >--------------------------------------------- Silvano Cesar da Costa Universidade Estadual de Londrina Centro de Ci?ncias Exatas Departamento de Estat?stica Fone: (43) 3371-4346 ---------------------------------------------