R在条件[重复]下删除数据框中的行。

问题描述 投票:0回答:1

我有以下数据框架结构。

x1   x2   x3  x4  
1    NA   NA  NA     
2    1    NA  3       
3    4    5   6       
4    7    8   NA      
5    NA   NA  NA 

如果所有的x2->x4都是NA,我想删除这些行(在我的数据集中,我有28列,名为 "1 "至 "28",第一列从来没有NA)。换句话说,我想保留。

x1   x2   x3  x4      
2    1    NA  3       
3    4    5   6       
4    7    8   NA 

有什么好办法吗?

先谢谢你!

r na delete-row
1个回答
1
投票
df[rowSums(is.na(df[,2:4]))!=3,]
  x1 x2 x3 x4
2  2  1 NA  3
3  3  4  5  6
4  4  7  8 NA

0
投票

你可以使用 filter_at :

library(dplyr)
df %>% filter_at(vars(x2:x4), any_vars(!is.na(.)))

#  x1 x2 x3 x4
#2  2  1 NA  3
#3  3  4  5  6
#4  4  7  8 NA
© www.soinside.com 2019 - 2024. All rights reserved.