将多个新列添加到数据表

时间:2017-06-30 07:02:50

标签: r data.table

我有一组数据,我需要添加多个额外的列来对现有数据进行排名。我这样做是通过一次添加一个额外的列,但我希望通过将列作为字符向量传递更有效的方式?这是一个简单的例子:

cols <- c("x", "y")

dt[, cols := lapply(.SD, function(x) rank(x, ties.method = "min")), .SDcols = cols]

排名方法在所有情况下都是相同的,所以我希望使用像

这样的东西
static final

1 个答案:

答案 0 :(得分:3)

我们可以使用paste来创建新变量

dt[, paste0("rank_", cols) := lapply(.SD, rank, ties.method = "min"), .SDcols = cols]