我有一个超过100个的 Dataframe ,000行,大约40列。schools列大约有100所不同的学校。我有1980年到2023年的数据。我希望保留2018年到2022年每年至少有10行的学校的所有数据。不符合该条件的学校应删除所有行。在我的最小示例Schools中,我有三所学校。计算一个表可以明显看出只有华盛顿应该保留。亚当斯只有5行表示2018年,Jefferson有0行表示2018年。Schools2是结果应该是什么样子。我如何使用表计算或dplyr计算来执行过滤?
Schools =
data.frame(school = c(rep('Washington', 60),
rep('Adams',70),
rep('Jefferson', 100)),
year = c(rep(2016, 5), rep(2018:2022, each = 10), rep(2023, 5),
rep(2017, 25), rep(2018, 5), rep(2019:2022, each = 10),
rep(2019:2023, each = 20)),
stuff = rnorm(230)
)
Schools2 =
data.frame(school = c(rep('Washington', 60)),
year = c(rep(2016, 5), rep(2018:2022, each = 10), rep(2023, 5)),
stuff = rnorm(60)
)
table(Schools$school, Schools$year)
Schools |> group_by(school, year) |> summarize(counts = n())
2条答案
按热度按时间g6ll5ycj1#
在
filter
的数据中仅保留2018年至2022年,然后按学校、年份和filter
添加频率计数列(仅"学校"),所有计数均大于或等于10,并且如果存在all
,则为范围中的年份或者使用
count
7fyelxc52#
事实证明,一个朋友刚刚帮我想出了一个基R的解决方案。