我无法解决一个问题。希望编写一个类似下面的函数:
f.describe <- function(.data, .var, .by)
{
require(plyr)
res <- ddply(.data, .by,
summarize,
N = sum(!is.na(.var))
`Mean (SD)`=sprintf("%5.2f (%5.2f)",
mean(.var, na.rm=TRUE), sd=sd(.var, na.rm=TRUE)),
Median = sprintf("%5.2f", median(.var))
)
res
}
但是我找不到传递变量进行处理的方法(.var),出现了这个错误:
错误 eval(expr, envir, enclos) : 找不到对象“ .var” (从其他语言翻译而来,因此可能不完全准确适用于英语用户)
我尝试使用eval、substitute但都没有解决办法...非常感谢您的帮助。有时我不理解R用于评估的规则。
<<-
将一个局部变量推入全局环境中,以便plyr可以找到它... - baptiste