すでに機能している以下のコードを関数に変換しようとしています。
同様の状況である dcast + DT は、すでにここで議論されています。しかし、私はそのような問題を解決することができませんでした。
私が達成したいことは次のとおりです。
- 複数行のコードに対して 2 つの引数のみを変更し、
- 関数内の各行で作成されたオブジェクトを作業ディレクトリに書き込みます
これはすでに動作するコードです:
result1 <- dcast(setDT(data), customer_id ~ paste0("num_of_oranges",period), value.var = "num_of_oranges", sum)
result2 <- dcast(setDT(data), customer_id ~ paste0("num_of_oranges",period) + paste0("SIGN_",sign), value.var = "num_of_oranges", sum)
result3 <- dcast(setDT(data), customer_id ~ paste0("num_of_oranges",period) + paste0("SIGN_",sign) + paste0("ORIGIN_",origin), value.var = "num_of_oranges", sum)
関数に対する私の試み:
create.Feature <- function(col1, stat) {
test1 <- dcast(df, df[[id]] ~ paste0("col1",df[[period]]), value.var = df[["col1"]], stat)
return(test1)
test2 <- dcast(df, df[[id]] ~ paste0("col1",df[[period]]) + paste0("SIGN",df[[sign]]), value.var = df[["col1"]], stat)
return(test2)
test3 <- dcast(df, df[[id]] ~ paste0("col1",df[[period]]) + paste0("SIGN",df[[sign]]) + paste0("ORIGIN",df[[origin]]), value.var = df[["col1"]], stat)
return(test3)
そして呼び出し:
test_result <- create.Feature("num_of_oranges", sum)
次のエラーが表示されます: Error in .subset2(x, i, exact = exact) : no such index at level 1
誰?