将多列动态添加到数据表

时间:2020-05-23 08:10:13

标签: r data.table

给出一个具有3列的数据表(前两列构成键),我试图添加一列x_k,其中k从1到N

df
>    a    b    c 
1:   1    1    1
2:   1    2    1
3:   1    3    2

对于每个新列x_k,其值由cos(2 * pi * c / k)a分组的方程b计算。

我的方法似乎不起作用:生成列名列表然后进行解析

df[, eval(parse(text = paste0(paste0("x_", 1:N), " := cos(2 * pi * c / ", 1:N, ")"))), by = .(a,b)]

R说c未找到。除了遍历列名列表之外,我该如何纠正我的方法?

1 个答案:

答案 0 :(得分:3)

也许尝试类似的事情:

df[, paste0("x_", 1L:N) := lapply(1L:N, function(k) cos(2 * pi * c / k)), .(a, b)]
相关问题