在R中将数据框含列表的列拆分为两列
解决方案
方法1:使用data.table原生操作(高效适配大数据场景)
你的输入是data.table类型,直接用transpose函数即可快速拆分列表列:
library(data.table) # 拆分venc列,将列表中的两个元素分别存入venc(代码)和data_vcto(日期)列 input[, c("venc", "data_vcto") := transpose(venc)]
执行后原input的venc列会被替换为代码值,同时新增data_vcto列存储日期,其余列保持不变。
方法2:使用tidyverse工具(语法更直观)
如果习惯tidyverse的链式语法,用unnest_wider拆分后重命名即可:
library(tidyverse) output <- input %>% # 将venc列的列表拆分为两个带后缀的临时列 unnest_wider(venc, names_sep = "_") %>% # 重命名为目标列名 rename(venc = venc_1, data_vcto = venc_2)
执行后得到的output完全匹配你给出的期望格式。
内容的提问来源于stack exchange,提问作者Osvaldo Assunção
相关产品推荐
相关产品推荐

