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

