如何统计data frame中因子出现次数并删除出现次数≤指定值的行
解决方法:筛选出现次数≥3的type行
嘿,这个需求很容易实现,我给你两种常用的方法,你可以按需选择:
方法一:Base R 原生实现
不需要额外安装包,用原生函数就能搞定:
# 第一步:统计每个type的出现频次 type_freq <- table(df$type) # 第二步:提取出出现次数≥3的type类别 keep_types <- names(type_freq)[type_freq >= 3] # 第三步:过滤原数据框,只保留目标type的行 filtered_df <- df[df$type %in% keep_types, ]
运行这段代码后,filtered_df就是你想要的结果啦。
方法二:使用 dplyr(tidyverse 生态)
如果你平时习惯用 tidyverse 风格的代码,这个方法更简洁直观:
library(dplyr) filtered_df <- df %>% # 按type分组 group_by(type) %>% # 只保留组内行数≥3的组 filter(n() >= 3) %>% # 取消分组(可选,但推荐保持数据结构整洁) ungroup()
这里的n()会返回每组的行数,直接用它来筛选就非常方便。
你可以运行任意一种方法,得到的结果都会和你给出的目标data frame一致哦。
内容的提问来源于stack exchange,提问作者kindofhungry
相关产品推荐
相关产品推荐

