data.table
という小さなRの問題があります。あなたの助けが大変ありがとうございます。R data.tableでは、変数のパラメータを式に渡すにはどうすればよいですか?
v1
と
v2
は文字変数として他のプログラムから渡される
Error in sum(v1, na.rm = TRUE) : invalid 'type' (character) of argument
このv1<- quote(Sepal.Length)
がいるようだ:
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)
私はエラー以下の取得:私はこれを行うにはどうすればよいです作業。コメント欄で
これは適切なトラックに置くことができます: 'dt [、sum(get(v1)、na.rm = TRUE)、by = v2]'または柔軟性がある場合は別のアプローチを提案します。 – flodel
Thx。それはうまくいったのですか?関数はv1という名前のオブジェクトを取得します。代用関数はこの表現に対して何をしましたか?何もしないで、v1を文字値 "Sepal.Length"に置き換えようとしましたか? – user1157129