【发布时间】:2018-03-05 03:11:34
【问题描述】:
我对@987654321@ 有一个问题,请使用.SDcols 进行更改。
这是示例数据:
dt
A B C D
XX XY "" ""
ZZ ZA "" ""
我想要的是使用.SDcols 将"" 更改为NA。
我试过这个:
dt[.SD == "", lapply(.SD, is.na), .SDcols = .(A, B, C, D)]
但是,我得到了错误。
有什么帮助吗?欣赏。
【问题讨论】:
-
应该只是
dt[, (names(dt)) := lapply(.SD, function(x) {x[x==""] <- NA; x})] -
fread(..., na.strings=c("", "NA"))能解决您的问题吗? -
或者如果你必须使用
.SDcols,那么dt[, (c("A","B","C","D")) := lapply(.SD, function(x) {x[x==""] <- NA; x}), .SDcols=c("A","B","C","D")] -
@ScottRitchie 实际上,真实数据包含多个列,有些需要
"。 -
@chinsoon12 还有
replace(x, x=="", NA)或者如果没有 NA 开头可能是is.na(x) <- x == ""
标签: r format data.table na