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

R语言data.table列中字符串拆分后插入为新行的实现问题

R data.table逗号分隔字符串拆分对齐解决方案

完整实现代码

首先确保你已经安装并加载了data.table包:

# 未安装可先执行 install.packages("data.table")
library(data.table)

你的示例数据构造代码:

dt <- data.table("0100"=c("9103,9048,9903,7837","8738,2942,2857,4053"),
                 "0101"=c("9103,9048,9903","2537,1983"))

核心处理代码:

# 逐列处理:拆分字符串、展平、转数值
col_processed <- lapply(dt, function(col) {
  as.numeric(unlist(strsplit(col, split = ",")))
})
# 计算所有列处理后的最大长度,作为最终数据表的行数
max_row <- max(lengths(col_processed))
# 长度不足的列补NA,合并为新的data.table
dt2 <- as.data.table(lapply(col_processed, function(x) {
  c(x, rep(NA, max_row - length(x)))
}))

结果说明

运行后得到的dt2结构和你预期的完全一致,注:你给出的预期输出示例中列名0010应为笔误,上述代码会保留原始数据集的列名0100。如果需要保留字符串格式而非数值,去掉as.numeric()即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:06:00