删除缺少值的行的最快方法?

Mic*_*ael 6 r data.table

我正在使用大型数据集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]
Run Code Online (Sandbox Code Playgroud)

有更快的方法吗?谢谢.

flo*_*del 9

这应该比使用更快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
Run Code Online (Sandbox Code Playgroud)