r - 如何根据频率删除 R 中的行?
问题描述
我想做一个具有固定效应的时间序列分析。我目前的数据集有大约 500 条政党宣言的观察结果。对于大多数派对,我有 2-6 份宣言。我现在想从我的数据集中删除只有 1 个宣言的政党。如何才能做到这一点?
解决方案
使用这种dplyr
基于方法的方法,我们执行group_by
on 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 )