You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用代码按频率合并低频次Specialisme变量?(支持DPLYR)

用dplyr合并低频次专业方向的实现方案

完全可以用dplyr的mutate函数实现需求,核心思路是先按年份分组,统计每个专业方向在当年的出现次数,再把次数不足20的统一替换为“其他”类。

dplyr实现代码示例

假设你的数据框名为df,包含Year(年份)和Specialisme(专业方向)两列:

library(dplyr)

# 处理数据:按年份分组,统计频次后合并低频次类别
df_processed <- df %>%
  group_by(Year) %>%
  # 给每个专业方向添加当年的出现次数
  add_count(Specialisme, name = "specialisme_count") %>%
  # 把次数<20的替换为"其他"
  mutate(Specialisme = ifelse(specialisme_count < 20, "其他", Specialisme)) %>%
  # 可选:删除临时计数列
  select(-specialisme_count) %>%
  ungroup()

其他可行方法(base R)

如果不想用dplyr,也可以用base R的ave函数直接处理:

# 按年份和专业分组统计次数,替换低频次类别
df$Specialisme <- with(df, 
                       ifelse(ave(rep(1, nrow(df)), Year, Specialisme, FUN = length) < 20, 
                              "其他", 
                              Specialisme))

两种方法都能自动适配不同年份里专业方向的变化——不管当年有哪些专业、排序如何,都会只保留出现次数≥20的类别,其余合并为“其他”。

内容的提问来源于stack exchange,提问作者Yvonne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 10:00:24