使用R将数据框同一行多单元格值合并到新增列的实现方法
实现方法
你的数据是data.table结构,直接使用如下单行代码即可完成需求,新增X15列存储每行非空值的逗号拼接结果:
df[, X15 := apply(.SD, 1, function(x) paste(x[x != ""], collapse = ","))]
逻辑说明
.SD代表当前data.table的所有列apply(.SD, 1, ...)对数据按行遍历处理- 匿名函数中先过滤掉当前行的空字符串,再将剩余元素用逗号拼接为单个字符串
:=是data.table的原地赋值符号,不需要重新赋值给新变量,处理效率更高
如果你使用的是普通R数据框(非data.table结构),可以用基础R写法:
df$X15 <- apply(df, 1, function(x) paste(x[x != ""], collapse = ","))
注意事项
如果你的数据中空值是NA而非空字符串,只需要把判断条件x != ""替换为!is.na(x)即可适配。
内容的提问来源于stack exchange,提问作者Lin Caijin
相关产品推荐
相关产品推荐

