Date: Sun, 23 Dec 2012 17:40:15 -0800
From: smartpink111 at yahoo.com
Subject: Re: [R] colmeans not working
To: eliza_botto at hotmail.com
CC: r-help at r-project.org; bbolker at gmail.com
Hi Eliza,
I tried with the example you gave. Couldn't reproduce the error.
res1<-list(read.table(text="
2005 2006 2008 2009
1.7360776 0.8095275 1.6369044 0.8195241
0.6962079 3.8510720 0.4319758 2.3304495
1.0423625 2.7687266 0.2904245 0.7015527
2.4158326 1.2315324 1.4287387 1.5701019
",sep="",header=TRUE),read.table(text="
2008 2009 2010
1.4737028 2.314878 2.672661
1.6700918 2.609722 2.112421
3.2387775 7.305766 6.939536
6.7063592 18.745256 13.278218
",sep="",header=TRUE))
names(res1)<-c("EE","WW")
res1<-lapply(res1,function(x) {names(x)<-gsub("X","",names(x));x})
res1
#$EE
# 2005 2006 2008 2009
#1 1.7360776 0.8095275 1.6369044 0.8195241
#2 0.6962079 3.8510720 0.4319758 2.3304495
#3 1.0423625 2.7687266 0.2904245 0.7015527
#4 2.4158326 1.2315324 1.4287387 1.5701019
#
#$WW
# 2008 2009 2010
#1 1.473703 2.314878 2.672661
#2 1.670092 2.609722 2.112421
#3 3.238777 7.305766 6.939536
#4 6.706359 18.745256 13.278218
lapply(res1,colMeans)
#$EE
# 2005 2006 2008 2009
#1.4726202 2.1652146 0.9470108 1.3554070
#
#$WW
# 2008 2009 2010
#3.272233 7.743906 6.250709
lapply(res1,rowMeans)
#$EE
#[1] 1.250508 1.827426 1.200767 1.661551
#
#$WW
#[1] 2.153747 2.130745 5.828026 12.909944
A.K.
----- Original Message -----
From: eliza botto <eliza_botto at hotmail.com>
To: bbolker at gmail.com; r-help at stat.math.ethz.ch
Cc:
Sent: Sunday, December 23, 2012 7:48 PM
Subject: Re: [R] colmeans not working
Dear Ben,Thanks for replying but its still not working.your code was>lapply(res,colMeans)but i want to use "res1" instead of "res". when i did use it, i got same error.eliza
To: r-help at stat.math.ethz.ch
From: bbolker at gmail.com
Date: Mon, 24 Dec 2012 00:31:41 +0000
Subject: Re: [R] colmeans not working
eliza botto <eliza_botto <at> hotmail.com> writes:
Dear useRs,You must all the planning for the christmas, but i am
stucked in my office on the following issue i had a file containg
information about station name, year, month, day, and discharge
information. i opened it by using following command
dat1<-read.table("EL.csv",header=TRUE, sep=",",na.strings="NA")
You can probably use
dat1 <- read.csv("EL.csv")
(although you may have to double-check some of the other
default differences between read.csv and read.table, e.g.
quote and comment.char arguments)
then by using following codes suggested by arun and rui i managed to obtain an
output
library(reshape2)
res <- lapply(split(dat1,dat1$st),
function(x) dcast(x,month~year,mean,value.var="discharge"))
[snip]
res1 <- lapply(res, function(x)x[,-1])
(c() is redundant here)
$EE
2005 2006 2008 2009
1 1.7360776 0.8095275 1.6369044 0.8195241
2 0.6962079 3.8510720 0.4319758 2.3304495
3 1.0423625 2.7687266 0.2904245 0.7015527
4 2.4158326 1.2315324 1.4287387 1.5701019
$WW
2008 2009 2010
1 1.4737028 2.314878 2.672661
2 1.6700918 2.609722 2.112421
3 3.2387775 7.305766 6.939536
4 6.7063592 18.745256 13.278218
Now you just need
lapply(res,colMeans)