【问题标题】:ddply evalution of new columnddply 评估新列
【发布时间】:2014-05-01 15:13:31
【问题描述】:

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

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

它抛出一个语法错误:

错误:出现意外的“=” a1

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

【问题讨论】:

    标签: r eval plyr


    【解决方案1】:

    这是一种方法。

    不确定是否可以像您尝试的那样在一行中将新变量名输入 ddply。

    另外,作为旁注,您不应该使用“c”作为变量名,因为它是向量的 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))
    

    【讨论】:

    • 谢谢斯图尔特,这正是我在解决问题时所做的——我想知道在 ddply 语句本身中是否有直接的方法
    • 我认为没有。其他一些答案也没有找到如何做到这一点。 stackoverflow.com/questions/10518925/…。也许 plyr 的未来更新会做到这一点。
    猜你喜欢
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多