【问题标题】:How to use string variables to create variables list for ddply?如何使用字符串变量为 ddply 创建变量列表?
【发布时间】:2010-09-24 04:25:44
【问题描述】:

使用 R 的内置 ToothGrowth 示例数据集,这可行:

ddply(ToothGrowth, .(supp,dose), function(df) mean(df$len)) 

但我希望子集因子是变量,例如

factor1 = 'supp'
factor2 = 'dose'
ddply(ToothGrowth, .(factor1,factor2), function(df) mean(df$len)) 

这行不通。这应该怎么做?

我想可能是这样的:

factorCombo = paste('.(',factor1,',',factor2,')', sep='') 
ddply(ToothGrowth, factorCombo, function(df) mean(df$len)) 

但它也不起作用。我想我很接近,但不确定正确的方法。我想可以将整个命令放入一个字符串中,然后对字符串进行 eval() 调用,但希望有更优雅的方法吗?

【问题讨论】:

    标签: r plyr


    【解决方案1】:

    试试:

    x <- c("supp", "dose") 
    ddply(ToothGrowth, x, function(df) mean(df$len)) 
    

    【讨论】:

    • 谢谢!并准确使用我所询问的格式,第一行将是: x
    • 没问题! ddply 是神,一旦你得到它,你几乎可以做任何你想做的事情。
    • 不错。你能用改变变量做同样的把戏吗?假设你有 x &lt;- c("supp") 并想要 len 和 V1 的分组平均值。
    • 是的,你可以!使用:ddply(ToothGrowth,.(supp),colwise(mean))。也适用于自定义函数!
    猜你喜欢
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-02
    • 1970-01-01
    相关资源
    最近更新 更多