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
相关产品推荐
相关产品推荐

