【问题标题】:Subset by multiple single-variable conditions in one step?一步中多个单变量条件的子集?
【发布时间】:2020-03-30 09:34:56
【问题描述】:

我希望我能充分解释我正在尝试做的事情。我在 R 中工作,对于一个数据集,我试图只保留一个变量的观察结果,另一个变量满足两个条件。

具体来说,我只想保留特定“cyl”的行,其中至少有一个 mpg 值 >20,至少一个

     mpg cyl
1  21.0   6
2  21.0   6
3  22.8   4
4  21.4   6
5  18.7   8
6  18.1   6
7  14.3   8
8  24.4   4
9  22.8   4
10 19.2   6
11 17.8   6
12 16.4   8
13 17.3   8
14 15.2   8
15 10.4   8
16 10.4   8
17 14.7   8
18 32.4   4
19 30.4   4
20 33.9   4

理想情况下,上述示例的输出将如下所示。

     mpg cyl
1  21.0   6
2  21.0   6
4  21.4   6
6  18.1   6
10 19.2   6
11 17.8   6

提前致谢!

【问题讨论】:

    标签: r dataframe subset


    【解决方案1】:

    假设你的数据框输入是DF,试试这个:

    library(dplyr)
    
    DF %>%
      group_by(cyl) %>%
      filter(sum(mpg > 20) > 1 & sum(mpg < 20) > 1)
    
    # A tibble: 7 x 2
    # Groups:   cyl [1]
    #    mpg   cyl
    #  <dbl> <dbl>
    # 1  21       6
    # 2  21       6
    # 3  21.4     6
    # 4  18.1     6
    # 5  19.2     6
    # 6  17.8     6
    # 7  19.7     6
    

    数据

    DF <- mtcars[,1:2] 
    

    【讨论】:

    • 谢谢,这完全符合我的需要。我不完全理解使用 dplyr 进行分组,但我现在明白了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-10
    • 2018-10-12
    • 2019-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多