の速度から得るが、そのデータ構造や構文を使用しないようにするために、data.table
分割適用結合 ( など) を使用するための単純なラッパーを作成しようとしています。私は以下を試しました。aggregate
ddply
data.table
fold = function(df, by, ...)
{
library(data.table)
dt = data.table(df)
dt = dt[, eval(substitute(list(...))), by]
df = as.data.frame(dt)
return(df)
}
a = data.frame(x=c(1,1,1,2,2,2), y=runif(6))
b = fold(a, "x", y_min=min(y), y_max=max(y))
print(a)
print(b)
これは、スクリプトとそれに入れるとうまくsource
機能しますが、その関数をパッケージに入れ、インストールして使用しようとすると、
Error in eval(expr, envir, enclos) : object 'y' not found
Calls: fold -> [ -> [.data.table -> [.data.frame -> eval -> eval
一般的にこれを試す以外に、私は何を間違っていますか?