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

R语言中如何为重复作者名分配相同的AuthorId

解决重复作者名对应相同AuthorId的问题

没问题,我来帮你搞定这个需求!你要的是让重复的作者名对应同一个AuthorId,同时保留所有行记录对吧?这里有两种简洁的实现方法:

方法1:使用dplyr包(推荐,和你用到的tibble生态一致)

如果你已经在使用tibble,那用dplyr的mutate函数配合因子转换会非常顺手:

library(dplyr)

# 假设你的数据框是df,作者列名为Author
df <- df %>%
  mutate(AuthorId = as.integer(factor(Author, levels = unique(Author))))
  • 原理:factor()会把每个唯一的作者名映射为一个独立的水平,as.integer()将这些水平转换为整数ID
  • 如果希望ID按照作者名首次出现的顺序分配,就保留levels = unique(Author)参数;如果想按字母顺序分配,直接去掉这个参数即可

方法2:Base R实现(无需额外安装包)

如果你不想加载额外的包,用Base R的match()函数也能轻松实现:

# 给数据框添加AuthorId列
df$AuthorId <- match(df$Author, unique(df$Author))
  • 原理:match()会返回每个作者名在unique(df$Author)中的位置索引,重复的作者名自然会得到相同的索引值,也就是相同的AuthorId

这两种方法都不会删除任何行记录,完美满足你“重复作者名对应相同ID”的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 19:32:40