是否可以使用data.table"""就地"在一步中将我的因子列X
转换为逻辑列。方法
myDT <- data.table(X = factor(c("true", "false")))
str(myDT)
myDT[, X := as.logical(X)] # does not work
myDT[, X := as.logical(as.character(X))] # does not work either
# but this does
myDT[, X := as.character(X)]
myDT[, X := as.logical(X)]
str(myDT)
答案 0 :(得分:3)
更新data.table
安装;这是一个修复过的错误,从版本1.9.8开始,现在factor
可以直接转换为logical
。
library(data.table)
myDT[, X:= X=="true"]
str(myDT)
#Classes ‘data.table’ and 'data.frame': 2 obs. of 1 variable:
# $ X: logi TRUE FALSE