给出一个具有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
未找到。除了遍历列名列表之外,我该如何纠正我的方法?
答案 0 :(得分:3)
也许尝试类似的事情:
df[, paste0("x_", 1L:N) := lapply(1L:N, function(k) cos(2 * pi * c / k)), .(a, b)]