我正在尝试将下面已经有效的代码变成一个函数。
类似的情况,dcast + DT,已经在这里讨论过了!但我无法解决这样的问题。
我想要实现的是:
- 只更改多行代码的两个参数,并且
- 将函数中每一行创建的对象写入工作目录
这是已经有效的代码:
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)
我收到以下错误: .subset2(x, i, exact = exact) 中的错误:级别 1 没有此类索引
任何人?