【发布时间】:2015-05-14 15:31:59
【问题描述】:
我想将几个 data.table 列从因子更改为字符
library(data.table)
ir <- as.data.table(iris)
ir[, Species2 := Species]
我可以确定我需要更改哪些列
facs <- which(sapply(ir, is.factor))
facs
我可以按名称更新列:
ir[, c("Species", "Species2") := lapply(.SD, as.character), .SDcols = facs]
sapply(ir, class)
有没有办法在不通过名称引用它们的情况下更新列?
【问题讨论】:
-
在这里,您通过查找哪些列是因子来更改类。我不明白你想要的结果
-
我得到了我想要的结果,但它依赖于我知道列的名称,这些列是我使用
:=时的因素。有没有一种编程方式来替换c("Species", "Species2") -
可以使用数字索引
5:6 := -
括号在这里工作
ir[,(facs):=lapply(.SD,as.character),.SDcols=facs]。另外,set. -
完美——data.table 越来越好!
标签: r data.table