R语言如何编辑重复记录:为CSV中重复的label/question条目添加序号
R语言实现重复label追加序号方案
核心逻辑为对同用户、同就诊下的相同问题按日期排序后,仅对重复出现的问题追加序号,具体操作步骤如下:
- 依赖包:使用tidyverse套件即可完成操作
install.packages("tidyverse") # 未安装时先执行 library(tidyverse) - 第一步:读取原始CSV数据
raw_df <- read_csv("你的本地CSV文件路径.csv") - 第二步:数据处理核心代码
processed_df <- raw_df %>% # 转换日期格式确保排序逻辑正确,可根据你实际的日期格式调整format参数 mutate(Date = as.Date(Date, format = "%m-%d-%y")) %>% # 按用户ID、就诊ID、问题标签分组,确认是同一主体下的重复问题 group_by(UserID, EncounterID, label) %>% # 分组内按日期升序排列 arrange(Date, .by_group = TRUE) %>% mutate( # 生成组内行号作为序号 seq = row_number(), # 仅当组内记录数大于1(即存在重复问题)时追加序号 label = ifelse(n() > 1, paste0(label, seq), label) ) %>% # 移除辅助列、取消分组 ungroup() %>% select(-seq) %>% # 若需要保留原始日期字符串格式可保留以下行,否则可删除 mutate(Date = format(Date, "%m-%d-%y")) - 结果导出
write_csv(processed_df, "处理后的结果文件路径.csv")
补充说明
如果你的业务逻辑中不需要限制同一次就诊(EncounterID),仅需判断同用户下的相同label为重复内容,可将group_by参数中的EncounterID删除即可,其余逻辑保持不变。
内容的提问来源于stack exchange,提问作者Ash S
相关产品推荐
相关产品推荐

