首页 > 解决方案 > 在 R 中按组级别过滤行

问题描述

如何选择与 2006 年、2019 年和 2020 年相关的所有行(也保留 NA 行)?

> head(all_data)
      year     Tt
      <fct> <dbl>
    1 2006   NA  
    2 2020    5  
    3 2008   18  
    4 2018   41  
    5 2020   33.5
    6 2019    0.7

我尝试了这种方法,但出现错误:

mini_data <- all_data[(all_data$year==c('2020','2019','2006')),]

Warning messages:
1: In `==.default`(rand$year, c("2020", "2019", "2006")) :
  longer object length is not a multiple of shorter object length
2: In is.na(e1) | is.na(e2) :
  longer object length is not a multiple of shorter object length

标签: rsubset

解决方案


将“哪个”与“|”结合起来 运营商为我做了诀窍。

mini_data <- data[which(data$year== 2020 | data$year == 2019 | data$year == 2006),]

可以在此处找到有关此主题的优秀线程:如何使用“OR”组合多个条件以子集数据框?


推荐阅读