我正在使用 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())?