根据另一列中的条件过滤非NA值,并保留所有其他记录

千瓦时

我试图在YEAR为1989时过滤掉SRA列中的NA值。换句话说,我想保留除YEAR为1989时SRA中的NA以外的所有值。这包括保留在Year和NA中都具有NA值的记录。 SRA栏

SRA <- c(NA, NA, NA, NA, NA, 5, 6, NA, NA, NA, 7, 10, NA, NA, 7, NA)
YEAR <- c(1989, 1989, 1989, 1989, 1989, 1989, 1989, 1990, 1990, 1990, 1990, 1990, 1991, 1991, NA, NA)
ALLPOP3 <- data.frame(YEAR, SRA)

我尝试了以下操作,但它过滤掉了YEAR和SRA具有NA值的记录

library(dplyr)
ALLPOP4 <- ALLPOP3 %>% 
  filter(YEAR != 1989 | !is.na(SRA))

有没有一种方法可以调整代码以保留YEAR和SRA具有NA值的记录?谢谢

所需输出:

 YEAR SRA
1  1989   5
2  1989   6
3  1990  NA
4  1990  NA
5  1990  NA
6  1990   7
7  1990  10
8  1991  NA
9  1991  NA
10   NA   7
11   NA  NA
阿克伦

我们可以使用&和取反(!

library(dplyr)
ALLPOP3 %>% 
  filter(!(YEAR == 1989 & is.na(SRA))|(is.na(YEAR) & is.na(SRA)))
#   YEAR SRA
#1  1989   5
#2  1989   6
#3  1990  NA
#4  1990  NA
#5  1990  NA
#6  1990   7
#7  1990  10
#8  1991  NA
#9  1991  NA
#10   NA   7
#11   NA  NA

或者以更紧凑的方式

ALLPOP3 %>%
    filter(!(YEAR == 1989 & !is.na(YEAR) & is.na(SRA)))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据另一列中的条件从一列获取所有值并自动更新

如何根据R中其他列的值过滤一列中的值?

根据其他列中的条件对一列中的值求和,并更改值

如何根据其他某些列的条件用另一列的值填充一列?

如何在一列中获取具有最小值的行,并按另一列进行分组,同时保留其他列?

熊猫过滤一列中的多个同名条目以提供另一列中的所有其他相关项目

如何根据另一列中的间隔填充熊猫中其他列的缺失值?

根据另一列中满足的条件进行过滤

查询SQL表以根据另一列中的过滤器获取一列中的所有新值

如何将一列中的行值与组中另一列中的所有其他行进行比较?

查找一列中具有相同值而另一列中具有其他值的行?

根据条件将所有值复制到另一列

Excel根据另一列中的值过滤列表

根据 SQL 中的另一列过滤值

过滤一列并在所有过滤行的另一列中插入值

根据另一列中的重复值过滤一列中的唯一值

Pandas - 根据后一列中是否存在值过滤一列中具有相同值和另一列中多个值的行

比较一列中的float值与pandas DataFrame中的所有其他列

根据具有多个记录的表中另一列的不同值添加值

根据列的先前记录在列中填充(NA值),并在R中填充另一列(有间隔)

当所有值都是日期时,将一列中的 NA 替换为另一列中的值

如何根据熊猫另一列中的条件生成具有值的新列

Pandas 根据另一列的条件有选择地覆盖列中的值

根据数据框中另一列的唯一值查找一列的所有组合

如何根据python中其他列的条件将字符串列拆分为另一列?

根据另一列中的值用预定值替换一列中的NA

根据另一列中的共识值替换一列中的NA值

根据条件将一列中的值替换为另一列中的值

根据SQL Server中的其他列条件找出一列的最大值和最小值