[R] means in tables
arun
smartpink111 at yahoo.com
Wed Apr 10 22:30:06 CEST 2013
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.
More information about the R-help
mailing list