小编gdo*_*dol的帖子

是否有一种最佳方法可以使用 data.table 创建一堆新列?

我正在使用 data.table 我有一个新列的名称向量。我想创建这些新列,但使用旧列中的信息。让我在下面的例子中展示它:

data <- data.table(a = c("OneA", "TwoB", "ThreeC"),
                   b = c(1, 2, 3))

newCols <- c("One", "Two", "Three")

for (newCol in newCols) {
  data[, eval(newCol) := gsub(paste0("^.*", newCol), "", a)]
}
Run Code Online (Sandbox Code Playgroud)

作为输出,我期望(并得到)以下内容:

> data
        a   b    One    Two Three
1:   OneA   1      A   OneA  OneA
2:   TwoB   2   TwoB      B  TwoB
3: ThreeC   3 ThreeC ThreeC     C
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我结合从向量定义新列并使用向量值本身来填充这些列。有没有办法做得更优化(例如使用 set())?

r data.table

4
推荐指数
1
解决办法
87
查看次数

标签 统计

data.table ×1

r ×1