我想将plyr函数包装在我自己的函数中 . 我想向函数传递一个对象和一个应用cut函数的变量(unquoted) .
x <- data.frame(time = seq(Sys.Date() - 99, Sys.Date(), 1))
dlply(x, .(week = cut(time, "1 week")), "[")
f <- function(datas, var) {
var <- deparse(substitute(var))
dlply(x, .(week = cut(var, "1 week")), "[")
}
f(x, time) # fail
我不知道如何使用对象var在ddply中将变量指定为变量而不是“var”作为变量 .
与dplyr不同,plyr函数没有标准的评估版本?我读到我可以使用字符串,但例如 dlply(x, .(week = cut("time", "1 week")), "[")
失败
我也试过lazyeval,但我迷失在标准/非标准评估领域 .
1 回答
您似乎在代码中有一个不必要的
deparse
,并且您没有在正确的位置评估var
. 它适用于以下内容 .