我在使用 data.table
时遇到了一个小问题,您的帮助将不胜感激。我该如何做到这一点:
getResult <- function(dt, expr, gby) {
e <- substitute(expr)
b <- substitute(gby)
return(dt[,eval(e),by=b])
}
v1 <- "Sepal.Length"
v2 <- "Species"
dt <- data.table(iris)
rDT <- getResult(dt, sum(v1, na.rm=TRUE), v2)
我收到以下错误:
Error in sum(v1, na.rm = TRUE) : invalid 'type' (character) of argument
现在,v1
和v2
都作为字符变量从其他程序传递,因此我无法执行v1<- quote(Sepal.Length)
,尽管它似乎有效。
dt[, sum(get(v1), na.rm=TRUE), by=v2]
,或者如果你可以灵活一些,建议采用其他方法。 - flodel