在 data.table 中选择至少有一个缺失值 (NA) 的行
Selecting rows with at least one missing value (NA) in a data.table
select 数据 table 中具有 至少一个 NA 值 的多个变量的行的便捷方法是什么?我找到了一个方法,但是如果select的变量很多的话就不方便了。
这是工作示例:
library(data.table)
# Create a data table
DT <- data.table(V1=1:5, V2=LETTERS[1:5])
# Insert some missing values
DT[c(1,3),V1 := NA]
DT[c(1,2),V2 := NA]
# Check the output
print(DT)
V1 V2
1: NA NA
2: 2 NA
3: NA C
4: 4 D
5: 5 E
# Select if there is at least one NA:
# My solution:
myDT <- DT[is.na(V1) | is.na(V2), ]
# Check output
print(myDT)
V1 V2
1: NA NA
2: 2 NA
3: NA C
所以这个解决方案可行,但是 如果有更多变量(V1、V2、V3,...)就不方便了。
有更好的方法吗?
使用complete.cases
,取相反的。
myDT <- DT[!complete.cases(V1,V2), ]
select 数据 table 中具有 至少一个 NA 值 的多个变量的行的便捷方法是什么?我找到了一个方法,但是如果select的变量很多的话就不方便了。
这是工作示例:
library(data.table)
# Create a data table
DT <- data.table(V1=1:5, V2=LETTERS[1:5])
# Insert some missing values
DT[c(1,3),V1 := NA]
DT[c(1,2),V2 := NA]
# Check the output
print(DT)
V1 V2
1: NA NA
2: 2 NA
3: NA C
4: 4 D
5: 5 E
# Select if there is at least one NA:
# My solution:
myDT <- DT[is.na(V1) | is.na(V2), ]
# Check output
print(myDT)
V1 V2
1: NA NA
2: 2 NA
3: NA C
所以这个解决方案可行,但是 如果有更多变量(V1、V2、V3,...)就不方便了。
有更好的方法吗?
使用complete.cases
,取相反的。
myDT <- DT[!complete.cases(V1,V2), ]