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

如何在R语言中对单元格内空格分隔的重复值去重?

解决R语言中data.frame字符串列内重复值去重问题

你可以通过以下两种简洁的方式实现对high_test列每个单元格内重复数值的去重:

方法一:基础R原生实现

借助字符串拆分、去重、合并的基础函数组合完成:

df$high_test <- sapply(strsplit(df$high_test, " "), function(x) {
  paste(unique(x), collapse = " ")
})

逻辑说明:

  • strsplit(df$high_test, " "):将每个单元格的空格分隔字符串拆分为字符向量
  • unique(x):对单个向量内的重复值去重
  • paste(..., collapse = " "):把去重后的向量重新合并为空格分隔的字符串
  • sapply:遍历所有单元格的处理结果,生成新的列值

方法二:tidyverse工具链实现

如果习惯使用tidyverse生态的语法,可结合dplyr与stringr完成:

library(dplyr)
library(stringr)

df <- df %>%
  mutate(high_test = str_split(high_test, " ") %>%
           map(unique) %>%
           map_chr(paste, collapse = " "))

逻辑说明:

  • str_split:将字符串列拆分为列表形式的字符向量集合
  • map(unique):对列表中的每个向量逐一去重
  • map_chr(paste, collapse = " "):将去重后的向量合并为字符串,并转换为字符列

运行任意一种方法后,查看结果:

df

输出将匹配你的目标需求:

name high_test
1    Rober 45 78 66 89
2    Kevin    33 51 67
3 Adelaide 71 87 60 98
4   Alexis       28 29

内容的提问来源于stack exchange,提问作者Alegría

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 23:31:19