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

R语言如何删除每列重复值并保留列名合并所有唯一值

R语言按列去重并保留列名实现方案

你之前的写法是把整个矩阵的所有元素提取为一维向量后全局去重,自然会丢失元素和对应列的绑定关系,正确的做法是按列遍历单独去重后再拼接:

基础R实现(无需额外安装包)

# 你的示例数据
data<-structure(c(10L, 10L, 11L, 11L, 5L, 5L, 3L, 5L), .Dim = c(2L, 
4L), .Dimnames = list(c("d1", "m1"), c("year2036", "year2037", 
"year2038", "year2039")))

# 核心处理逻辑
out <- unlist(lapply(colnames(data), function(col_name) {
  # 单列取唯一值
  unique_vals <- unique(data[, col_name])
  # 给当前列的所有唯一值绑定对应列名
  names(unique_vals) <- rep(col_name, length(unique_vals))
  return(unique_vals)
}))

输出结果验证

打印out即可得到你需要的命名向量:

year2036 year2037 year2038 year2039 year2039 
      10       11        5        3        5 

和你给出的期望输出结构完全一致:

target_out <- structure(c(10, 11, 5, 3, 5), .Names = c("year2036", "year2037", 
"year2038", "year2039", "year2039"))
identical(out, target_out) # 运行返回 TRUE

内容的提问来源于stack exchange,提问作者Hüsamettin Tayşi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 01:18:00