[R] summarizing a dataset on a factor
Tom Wright
tom at maladmin.com
Thu Mar 27 22:09:38 CET 2014
Thanks David,
Neat use of merge there.
I think I can also do this with:
ddply(data,.(id),f)
On Thu, 2014-03-27 at 16:06 -0500, David Carlson wrote:
> It may be possible to do this in a single step, but
>
> > x1 <- aggregate(response~id+age, data, mean)
> > x2 <- data[data$eye=="l", c("id", "response2")]
> > merge(x1, x2)
> id age response response2
> 1 1 2 4.60 High
> 2 2 9 2.65 High
> 3 3 5 3.65 High
> 4 4 2 7.55 High
> 5 5 11 4.15 High
>
> -------------------------------------
> David L Carlson
> Department of Anthropology
> Texas A&M University
> College Station, TX 77840-4352
>
> -----Original Message-----
> From: r-help-bounces at r-project.org
> [mailto:r-help-bounces at r-project.org] On Behalf Of Tom Wright
> Sent: Thursday, March 27, 2014 3:48 PM
> To: r-help at r-project.org
> Subject: [R] summarizing a dataset on a factor
>
> Hi all,
> I've spent too long in matlab land recently and seem to have
> forgotten
> my R skillz ;-)
> I'm sure I'm missing a simple way to do this...
>
> Given a data frame
> id<-rep(1:5,2)
> eye<-c(rep('l',5),rep('r',5))
> age<-rep(round(runif(5,0,12)),2)
> response<-round(runif(10,1,10)*10)/10
> response2<-sample(c('High','Low'),10,replace=TRUE)
>
> data<-data.frame(id,eye,age,response,response2)
>
> I want to create a new dataset averaging the response variable
> from both
> eyes for each test.
>
> I know there are many ways to do this but... I would also like
> to keep
> the value of the response2 variable for the left eye.
>
> ending up with the dataset
> id age response response2
> 1 9 3.65 High
> 2 10 3.85 High
> 3 8 8.15 Low
> 4 4 4.4 Low
> 5 0 4.6 High
>
> I thought something like
> f<-function(x){#make my choices here}
> aggregate(data,list(data$id),f)
>
> but x only seems to contain the first column of data.
>
> I could probably have done this manually in the time spent
> writing this
> email.
> any help appreciated,
> Tom
>
> ______________________________________________
> 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