Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在另一个函数中定义聚合函数时发生ddply错误_R_Plyr - Fatal编程技术网

R 在另一个函数中定义聚合函数时发生ddply错误

R 在另一个函数中定义聚合函数时发生ddply错误,r,plyr,R,Plyr,以下几乎最小代码的要点是在函数f中应用ddply,其中ddply的聚合函数(helper)在函数f的定义中是自定义的 不幸的是,我不明白为什么对整个代码段进行寻源会产生错误 eval(expr、envir、enclose)中出错:找不到函数“helper”。当helper函数独立于函数f运行时,该代码起作用。当我将ddply调用替换为by的未注释调用时,代码运行时不会出错 您能否解释错误并提供解决方案或解决方法?[使用plyr 1.8.1和R 3.0.3进行测试] rm (list = ls()

以下几乎最小代码的要点是在函数f中应用ddply,其中ddply的聚合函数(helper)在函数f的定义中是自定义的

不幸的是,我不明白为什么对整个代码段进行寻源会产生错误 eval(expr、envir、enclose)中出错:找不到函数“helper”。当helper函数独立于函数f运行时,该代码起作用。当我将ddply调用替换为by的未注释调用时,代码运行时不会出错

您能否解释错误并提供解决方案或解决方法?[使用plyr 1.8.1和R 3.0.3进行测试]

rm (list = ls())
library(plyr)

f <- function() {

  dfx <- data.frame(
    group = c(rep('A', 8), rep('B', 15), rep('C', 6)),
    sex = sample(c("M", "F"), size = 29, replace = TRUE),
    age = runif(n = 29, min = 18, max = 54)
  )

  helper <- function(x) {
    return(max(x))
  }

  result <- ddply(dfx, .(group, sex), summarize, max_age = helper(age))
  #result <- by(dfx$age, dfx[,c("group", "sex")], helper)

  return(result)
}

print(f())
rm(list=ls())
图书馆(plyr)
f试试:

结果尝试:

结果尝试:

结果尝试:


结果非常好,效果非常好!非常感谢你的快速回答。事后看来,我猜plyr中添加“here”正是为了解决这种环境问题。太好了,效果非常好!非常感谢你的快速回答。事后看来,我猜plyr中添加“here”正是为了解决这种环境问题。太好了,效果非常好!非常感谢你的快速回答。事后看来,我猜plyr中添加“here”正是为了解决这种环境问题。太好了,效果非常好!非常感谢你的快速回答。事后看来,我猜plyr中添加“此处”正是为了解决此类环境问题。
result <- ddply(dfx, .(group, sex), here(summarize), max_age = helper(age))