说我有一个如下数据框
A B C
NA 2 NA
1 2 3
1 NA 3
1 2 3
并且我想删除第一行(A,C)中具有NA的列
B
2
2
NA
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]))