R语言有没有函数可以拆分单元格为新行同时复制其余列数据
R语言实现单元格拆分并扩展为多行的方案
方案1:使用tidyr包的separate_rows(推荐,代码最简洁)
这个函数是tidyverse生态中专门用于处理该类需求的工具,只需指定拆分列和分隔符即可自动完成行扩展,其余列数据自动对应复制。
代码示例:
# 未安装tidyr先执行:install.packages("tidyr") library(tidyr) # 直接按逗号拆分Send_To列并扩展为多行 mydf_spreaded <- separate_rows(mydf, Send_To, sep = ",")
运行后得到的结果和你给出的预期输出完全一致。
方案2:纯Base R实现(无第三方包依赖)
如果不想引入额外依赖,可以用基础函数组合实现:
# 按逗号拆分Send_To列的每个单元格 split_list <- strsplit(mydf$Send_To, split = ",") # 计算每个原行需要重复的次数 rep_times <- lengths(split_list) # 重复其余列的行,拼接拆分后的id得到结果 mydf_spreaded <- data.frame( Sent_From = rep(mydf$Sent_From, rep_times), Timestamp = rep(mydf$Timestamp, rep_times), Send_To = unlist(split_list) )
内容的提问来源于stack exchange,提问作者Cold2Breath
相关产品推荐
相关产品推荐

