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

R语言如何高效提取数据框6列中的所有唯一名称

问题原因

你使用的unique(Names[1:3])默认是对数据框的行组合进行去重,仅会移除指定列字段值完全一致的重复行,不会把多列的所有值合并后做全局去重,所以返回的还是接近原数据的表格。

解决方案

方案1:获取多列所有值的全局唯一列表

用unlist()把指定多列的内容平铺为单个向量后再做去重即可,针对6列的需求代码如下:

# 获取1-6列所有值的全局去重结果
unique(unlist(Names[1:6]))

# 如果需要排除结果中的NA值,加参数即可
unique(unlist(Names[1:6]), useNA = "no")

方案2:批量对每列单独去重,无需编写多条命令

用lapply()批量遍历目标列执行去重操作,返回的列表中每个元素对应一列的去重结果:

# 批量对1-6列分别做列内去重
col_unique_res <- lapply(Names[1:6], unique)

# 可以直接查看某一列的去重结果,比如查看第2列
col_unique_res[[2]]

验证示例

你可以用测试数据运行确认效果:

# 构造测试数据框
Names <- data.frame(
  col1 = c("张三","李四","王五","张三"),
  col2 = c("李四","王五","赵六","王五"),
  col3 = c("王五","赵六","孙七","赵六")
)

# 运行全局去重代码
unique(unlist(Names[1:3]))
# 返回结果:"张三" "李四" "王五" "赵六" "孙七"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 21:06:03