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