[R] means in tables
arun
smartpink111 at yahoo.com
Thu Apr 11 00:28:48 CEST 2013
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
---------------------------------------------
More information about the R-help
mailing list