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

R语言如何将10列data.frame合并为单列并去除重复值

实现方案

方案1:R原生向量化写法(推荐,比循环效率高,代码更简洁)

直接将整个data.frame转成矩阵后拉直为向量,一步完成合并,无需逐列操作:

# 合并所有列并去重
uniqueallcol <- unique(as.vector(as.matrix(allcol)))
# 可选:过滤空值(适配你样例里的空单元格场景)
uniqueallcol <- uniqueallcol[!is.na(uniqueallcol) & uniqueallcol != ""]

方案2:循环实现版本(符合你要求的循环逻辑)

如果你需要用循环实现,直接遍历所有列做拼接即可,不用手动写10列的赋值逻辑:

# 初始化空向量存储所有值
all_values <- c()
# 遍历data.frame的每一列
for (col_idx in 1:ncol(allcol)) {
  all_values <- c(all_values, as.character(allcol[, col_idx]))
}
# 去重得到最终结果
uniqueallcol <- unique(all_values)
# 可选:过滤空值
uniqueallcol <- uniqueallcol[!is.na(uniqueallcol) & uniqueallcol != ""]

两种方案得到的结果和你原来手动拼接的结果完全一致,列数如果后续有增减也不需要改代码,适配性更强。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:24:05