删除第一行值为NA的列

时间:2019-05-22 05:42:48

标签: r dataframe

说我有一个如下数据框

A   B   C
NA  2   NA
1   2   3
1   NA  3
1   2   3

并且我想删除第一行(A,C)中具有NA的列

  B  
  2  
  2   
 NA  
  2  

我该如何实现?谢谢!

2 个答案:

答案 0 :(得分:3)

您可以这样做:

df[,!is.na(df[1,]), drop = F]

 B
1  2
2  2
3 NA
4  2

答案 1 :(得分:2)

还有其他一些选择

使用基数R

df[!is.na(sapply(df, `[`, 1))]

或与dplyr

library(dplyr)
df %>% select_if(~!is.na(.[1L]))
#   B
#1  2
#2  2
#3 NA
#4  2

使用purrr个变体

purrr::discard(df, ~is.na(.[1L]))
purrr::keep(df, ~!is.na(.[1L]))