【发布时间】:2015-05-26 15:52:47
【问题描述】:
我知道那里有各种类似的问题,因此我为重复表示歉意。也就是说,虽然我找到了有关此主题的有用信息,但我尝试的任何方法似乎都不起作用。
简而言之,我在函数内部使用 ddply,并尝试将参数从函数传递给 ddply 中的函数。
使用iris 数据集的简化示例
IG_test <-function(data, feature){
dd<-ddply(data, feature, here(summarise), N=length(feature))
return(dd)
}
IG_test(iris, "Species")
这应该返回每个物种的记录数,但在每种情况下都返回 1。
如果我直接在 length() 中指定“物种”,我会得到我正在寻找的东西
IG_test <-function(data, feature){
dd<-ddply(data, feature, here(summarise), N=length(Species))
return(dd)
}
IG_test(iris, "Species")
Species N
1 setosa 50
2 versicolor 50
3 virginica 50
描述类似问题的最新问题建议在 ddply 中将 here() 用于 summarize() 函数,以便告诉 ddply 在哪里查找变量。这是因为找到了feature(没有here(),我们会得到一个错误),但是它没有按预期返回长度。
有什么想法吗?
【问题讨论】: