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

使用data.table拆分字符串并提取每行唯一字符的方法求助

解决方案

针对200万行的大数据集,推荐使用向量化操作实现高效处理,避免循环或低效逐行处理:

library(data.table)
dt <- data.table(x = c("a,b,b,c,NA","b,b,NA,c","a,b,c,c,c,d"))

# 直接修改原列,高效完成拆分-去重-拼接
dt[, x := sapply(strsplit(x, ","), function(y) paste(unique(y), collapse = ","))]

运行后得到目标结果:

x
1:  a,b,c,NA
2:    b,NA,c
3:   a,b,c,d

代码说明

  • strsplit(x, ","):将每行的字符串按逗号拆分为字符向量,属于向量化操作,处理大数据集的效率远高于逐行循环
  • sapply(..., function(y) paste(unique(y), collapse = ",")):对每个拆分后的向量提取唯一值,再用逗号拼接回字符串
  • dt[, x := ...]:利用data.table的原地修改特性,避免额外数据复制,适合百万级大表的内存优化

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 08:37:09