当 R 中有很多缺失时删除列

ami*_*s55 6 r drop

我正在尝试删除一些有效值少于 5 个的列。这是一个示例数据集。

df <- data.frame(id = c(1,2,3,4,5,6,7,8,9,10),
                 i1 = c(0,1,1,1,1,0,0,1,NA,1),
                 i2 = c(1,0,0,1,0,1,1,0,0,NA),
                 i3 = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,0),
                 i4 = c(NA,1,NA,NA,NA,NA,NA,NA,1,NA))

> df
   id i1 i2 i3 i4
1   1  0  1 NA NA
2   2  1  0 NA  1
3   3  1  0 NA NA
4   4  1  1 NA NA
5   5  1  0 NA NA
6   6  0  1 NA NA
7   7  0  1 NA NA
8   8  1  0 NA NA
9   9 NA  0 NA 1
10 10  1 NA  0 NA
Run Code Online (Sandbox Code Playgroud)

在这种情况下,需要从数据框中删除列i3和。i4

我怎样才能获得下面所需的数据集:

> df
   id i1 i2 
1   1  0  1 
2   2  1  0 
3   3  1  0
4   4  1  1 
5   5  1  0 
6   6  0  1 
7   7  0  1 
8   8  1  0 
9   9 NA  0 
10 10  1 NA 
Run Code Online (Sandbox Code Playgroud)

San*_*ago 6

您可以使用以下命令保留至少 5 个非缺失值的列:

df[colSums(!is.na(df)) >= 5]
Run Code Online (Sandbox Code Playgroud)