[R] convert a character string to a name

arun smartpink111 at yahoo.com
Thu May 23 09:19:06 CEST 2013


 with(dftest,aggregate(cbind(x,y),list(z),FUN=mean))
#  Group.1 x y
#1       0 7 1
#2       1 6 2


#or
library(plyr)
ddply(dftest,.(z),numcolwise(mean))
#  z x y
#1 0 7 1
#2 1 6 2
A.K.



----- Original Message -----
From: jpm miao <miaojpm at gmail.com>
To: r-help <r-help at r-project.org>
Cc: 
Sent: Thursday, May 23, 2013 3:05 AM
Subject: [R] convert a character string to a name

Hi,
   From time to time I need to do the aggregation. To illustrate, I present
a toy example as below. In this example, the task is to aggregate x and y
by z with the function mean.
   Could I call the aggregation function with x_test, where
   x_test=c("x","y")? Thanks

Miao


> dftest<-data.frame(x=1:12, y=(1:12)%%4, z=(1:12)%%2)
> dftest
    x y z
1   1 1 1
2   2 2 0
3   3 3 1
4   4 0 0
5   5 1 1
6   6 2 0
7   7 3 1
8   8 0 0
9   9 1 1
10 10 2 0
11 11 3 1
12 12 0 0
> aggregate(cbind(x,y)~z, data=dftest, FUN=mean)
  z x y
1 0 7 1
2 1 6 2
> x_test=c("x","y")
> aggregate(cbind(x_test)~z, data=dftest, FUN=mean)
Error in model.frame.default(formula = cbind(x_test) ~ z, data = dftest) :
  variable lengths differ (found for 'z')
a1aggregate(cbind(factor(x_test))~z, data=dftest, FUN=mean)
Error in model.frame.default(formula = cbind(factor(x_test)) ~ z, data =
dftest) :
  variable lengths differ (found for 'z')
> aggregate(factor(x_test)~z, data=dftest, FUN=mean)
Error in model.frame.default(formula = factor(x_test) ~ z, data = dftest) :
  variable lengths differ (found for 'z')

    [[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