我正在使用大型数据集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/