[R] colmeans not working

arun smartpink111 at yahoo.com
Mon Dec 24 03:23:48 CET 2012


Dear Eliza,

It didn't change the result.
res<-list(read.table(text="
     month      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
",sep="",header=TRUE),read.table(text="
   month       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
",sep="",header=TRUE))
 names(res)<-c("EE","WW")
res<-lapply(res,function(x) {names(x)<-gsub("X","",names(x));x})
res
#$EE
 # month      2005      2006      2008      2009
#1     1 1.7360776 0.8095275 1.6369044 0.8195241
#2     2 0.6962079 3.8510720 0.4319758 2.3304495
#3     3 1.0423625 2.7687266 0.2904245 0.7015527
#4     4 2.4158326 1.2315324 1.4287387 1.5701019

#$WW
 # month     2008      2009      2010
#1     1 1.473703  2.314878  2.672661
#2     2 1.670092  2.609722  2.112421
#3     3 3.238777  7.305766  6.939536
#4     4 6.706359 18.745256 13.278218

lapply(res,function(x) colMeans(x[,-1]))
#$EE
#     2005      2006      2008      2009 
#1.4726202 2.1652146 0.9470108 1.3554070 
#
#$WW
#    2008     2009     2010 
#3.272233 7.743906 6.250709 

 lapply(res,function(x) rowMeans(x[,-1]))
#$EE
#[1] 1.250508 1.827426 1.200767 1.661551
#
#$WW
#[1]  2.153747  2.130745  5.828026 12.909944
A.K.






________________________________
From: eliza botto <eliza_botto at hotmail.com>
To: "smartpink111 at yahoo.com" <smartpink111 at yahoo.com> 
Cc: "r-help at r-project.org" <r-help at r-project.org> 
Sent: Sunday, December 23, 2012 9:10 PM
Subject: RE: [R] colmeans not working



Dear Arun,
on having a bird eye view i came to notice that the data you are using dont have month column at the beginning.
my initial data was
> res

$EE
   month      2005      2006      2008      2009
1      1 1.7360776 0.8095275 1.6369044 0.8195241
2      2 0.6962079 3.8510720 0.4319758 2.3304495
3      3 1.0423625 2.7687266 0.2904245 0.7015527
4      4 2.4158326 1.2315324 1.4287387 1.5701019

$WW
   month       2008      2009      2010
1      1  1.4737028  2.314878  2.672661
2      2  1.6700918  2.609722  2.112421
3      3  3.2387775  7.305766  6.939536
4      4  6.7063592 18.745256 13.278218
afterwards i used eliminated the month column and got

$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 when i m aPPLYING rowMeans or colMeans, i am getting error.
i m attaching the text file for better understandging


eliza

> 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)
> > 
> > ______________________________________________
> > 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.
>                           
>     [[alternative HTML version deleted]]
> 
> ______________________________________________
> 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