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

标签 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]

有更快的方法吗?
谢谢。

最佳答案

这应该比使用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/

相关文章:

r - 当字符串包含特殊字符时检查一个字符串是否包含R中的另一个字符串

r - `data.table` 基于 `agrep` 选择子集的方法?

regex - 从具有固定起始位置和结束点的字符串中提取 R 中的子字符串作为找到的字符

r - 没有金额汇总的中间步骤,如何获得相同的图?

r - 如何在 R 中直观地将具有多个变量的列联表表示为决策树?

r - zoo/xts 微秒读取问题

sql - 在 dplyr (SQL) 中处理日期和连接字符串

r - 在 R 中选择 data.table 键

r - 使用 lapply 对 R 中的数据表进行基准测试,速度是否较慢?

R data.table 使用变量名在 group by 中赋值