我正在使用大型数据集x。我想删除x的一组列中一个或多个列中缺少的x行,该行由字符向量varcols指定。

到目前为止,我已经尝试了以下方法:

require(data.table)
x <- CJ(var1=c(1,0,NA),var2=c(1,0,NA))
x[, textcol := letters[1:nrow(x)]]
varcols <- c("var1","var2")

x[, missing := apply(sapply(.SD,is.na),1,any),.SDcols=varcols]
x <- x[!missing]

有更快的方法吗?
谢谢。

最佳答案

这应该比使用apply更快:

x[rowSums(is.na(x[, ..varcols])) == 0, ]
#    var1 var2 textcol
# 1:    0    0       e
# 2:    0    1       f
# 3:    1    0       h
# 4:    1    1       i

关于r - 删除缺少值的行的最快方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13755547/

10-11 20:00