ddply评估新列

时间:2014-05-01 15:13:31

标签: r eval plyr

我试图在ddply语句中使用对象值作为新变量名:

    c<-"Sales_column"
    a1<-ddply(df,.(c1),here(summarize),eval(parse(text=c)) = sum(c3))

抛出语法错误:

  

错误:意外&#39; =&#39;在   a1&lt; -ddply(df,。(c1),here(summary),eval(parse(text = c))=&#34;

我做错了什么? 在这种情况下,我想将新列命名为&#34; Sales_column&#34; 此代码是大代码的一部分,其中c值将发生变化。

1 个答案:

答案 0 :(得分:0)

这是一种方法。

不确定是否可以按照您的尝试将新变量名称输入到ddply中。

另外作为副作用你不应该使用&#34; c&#34;作为变量名,因为它是向量的r代码,它可能会让人感到困惑。其他要避免的是T(TRUE的缩写),F(FALSE的缩写)。

示例数据帧

df = data.frame(c1 = c(rep("a",5), rep("b", 5)),
                c2 = seq(1,10),
                c3 = rnorm(10))

解决方案

library(plyr)
c<-"Sales_column"
a1<-ddply(df,.(c1), here(summarise) , Output = sum(c3))
names(a1) = sub("Output", c, names(a1))