我正在尝试使用ddply在其中进行功能。但是我不能上类。这是一个重现我所得到的虚拟例子。这和this bug有关系吗?

library(ggplot2)
data(diamonds)

foo <- function(data, fac1, fac2, bar) {
  res <- ddply(data, .(fac1, fac2), mean(bar))
  res
}

foo(diamonds, "color", "cut", "price")

最佳答案

我不相信这是一个错误。 ddply需要一个函数的名称,而mean(bar)并未真正提供该函数的名称。您需要编写一个完整的函数来计算您想要的均值:

foo <- function(data, fac1, fac2, bar) {
  res <- ddply(data, c(fac1, fac2), function(x,ind){
                                     mean(x[,ind]},bar)
  res
}

另外,您不应该将字符串传递给.(),因此我将其更改为c(),以便可以将函数参数直接传递给ddply

关于r - 在函数中使用ddply,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6584030/

10-12 17:48