【发布时间】:2020-01-07 13:02:08
【问题描述】:
我正在使用 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)]
}
作为输出,我期望(并得到)以下内容:
> data
a b One Two Three
1: OneA 1 A OneA OneA
2: TwoB 2 TwoB B TwoB
3: ThreeC 3 ThreeC ThreeC C
在这种情况下,我结合了从向量定义新列并使用向量值本身来填充这些列。有没有办法让它更优化(例如使用 set())?
【问题讨论】:
标签: r data.table