【发布时间】:2013-05-22 22:12:38
【问题描述】:
我正在尝试将函数应用于大型 data.table 中的一组列,而不是单独引用每一列。
a <- data.table(
a=as.character(rnorm(5)),
b=as.character(rnorm(5)),
c=as.character(rnorm(5)),
d=as.character(rnorm(5))
)
b <- c('a','b','c','d')
使用上面的 MWE,这个:
a[,b=as.numeric(b),with=F]
有效,但是这个:
a[,b[2:3]:=data.table(as.numeric(b[2:3])),with=F]
不起作用。将as.numeric 函数仅应用于a 的第2 列和第3 列而不单独引用它们的正确方法是什么。
(实际数据集中有几十列,不切实际)
【问题讨论】:
-
另外,如果您只想通过索引引用多个列,
,with=F]允许 j 成为列索引,例如dt[, 2:3, with =F。但是根据@mnel 的回答,对每个函数应用一个函数更复杂。
标签: r data.table multiple-columns indices