首页 > 解决方案 > 如何根据频率删除 R 中的行?

问题描述

我想做一个具有固定效应的时间序列分析。我目前的数据集有大约 500 条政党宣言的观察结果。对于大多数派对,我有 2-6 份宣言。我现在想从我的数据集中删除只有 1 个宣言的政党。如何才能做到这一点?

标签: r

解决方案


使用这种dplyr基于方法的方法,我们执行group_byon partyname,然后n()获取每组的行数,然后再filter()执行该操作。

library(tidyverse)
set.seed(1234)
n <- 20
tibble(partyname = sample(c("blue", "red", "green"), size = n, replace = T), x = rnorm(n)) %>% 
  group_by(partyname) %>% 
  mutate(n = n()) %>% 
  filter(n > 4)
#> # A tibble: 16 x 3
#> # Groups:   partyname [2]
#>    partyname        x     n
#>    <chr>        <dbl> <int>
#>  1 red        0.0183     11
#>  2 red        0.705      11
#>  3 green      0.868       5
#>  4 red        0.00501    11
#>  5 red       -0.0376     11
#>  6 green      0.724       5
#>  7 red       -0.497      11
#>  8 red        0.0114     11
#>  9 red        0.00986    11
#> 10 green      0.678       5
#> 11 red        1.03       11
#> 12 red       -1.73       11
#> 13 red       -2.20       11
#> 14 red        0.543      11
#> 15 green      0.163       5
#> 16 green      1.24        5

reprex 包于 2021-07-07 创建 (v2.0.0 )


推荐阅读