【问题标题】:Remove list elements with less than "x" rows删除少于“x”行的列表元素
【发布时间】:2021-08-14 16:17:43
【问题描述】:

我有一个看起来像这样的列表,但有上千个条目。

a=mtcars[1:5,]
b=mtcars[1:10,]
c=mtcars[1:7,]
my_list <- list(a, b, c)

我想删除所有少于 7 行的列表对象。 所需的输出将在我的列表中保留为“b”和“c”。 重要的是,我想将此功能合并到我的 dplyr 管道中

我期待你的想法

【问题讨论】:

    标签: r list dplyr tidyverse


    【解决方案1】:

    另一个使用keep的选项:

    library(tidyverse)
    keep(my_list, ~all(nrow(.x) >= 7))
    # [[1]]
    #                    mpg cyl  disp  hp drat    wt  qsec vs am gear carb
    # Mazda RX4         21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
    # Mazda RX4 Wag     21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
    # Datsun 710        22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
    # Hornet 4 Drive    21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
    # Hornet Sportabout 18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
    # Valiant           18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
    # Duster 360        14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
    # Merc 240D         24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
    # Merc 230          22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
    # Merc 280          19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
    
    # [[2]]
    #                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
    # Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
    # Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
    # Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
    # Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
    # Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
    # Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
    # Duster 360        14.3   8  360 245 3.21 3.570 15.84  0  0    3    4
    

    【讨论】:

      【解决方案2】:

      非常简单直接的方法

      my_list[sapply(my_list, nrow) >= 7]
      

      【讨论】:

      • 非常感谢奥利弗...天才的回答
      猜你喜欢
      • 2017-12-06
      • 1970-01-01
      • 2015-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-06
      • 2022-01-18
      • 2023-03-16
      相关资源
      最近更新 更多