R语言中获取政客最新学术头衔并统计其出现频次
解决方法
你的问题出在排序逻辑上——之前的代码是按academic_title排序,这和任期的新旧完全无关,所以取到的是每个政客名下按头衔排序后的第一条,自然不是最新状态。要获取最新头衔,核心是按任期(electoral_terms)的先后排序,保留每个政客最新任期对应的记录。
方案一:排序后去重
先按政客ID(ui)分组,再按任期降序排列(最新任期排最前面),然后对每个ui只保留第一条记录:
Stammdaten_academic <- Stammdaten |> arrange(ui, desc(electoral_terms)) |> distinct(ui, .keep_all = TRUE)
方案二:直接取每组最大任期记录
用slice_max更直观,不需要提前排序,直接对每个政客组取任期最大的那一行:
Stammdaten_academic <- Stammdaten |> group_by(ui) |> slice_max(electoral_terms, n = 1, with_ties = FALSE) |> ungroup()
注:如果有政客在同一任期内有多个不同头衔(with_ties=TRUE的情况),可以根据需求调整这个参数,或者再加一个排序条件(比如头衔更新时间)来处理。
统计头衔种类及频次
拿到每个政客的最新头衔后,用count函数统计即可:
title_stat <- Stammdaten_academic |> count(academic_title, sort = TRUE)
执行后title_stat会按频次从高到低展示所有学术头衔的种类和对应数量。
内容的提问来源于stack exchange,提问作者CorinnaW
相关产品推荐
相关产品推荐

