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

如何在R中将不同大小的DataFrame列表转为每行对应一个原表的新表

将列表中的DataFrame转换为每行对应一个DataFrame、列值为分号分隔字符串的新DataFrame

示例数据

先定义你的数据(注意不要用list作为变量名,避免覆盖R内置函数):

df1 <- data.frame(d=c(0,1,2),n=c(5,5,5),i=c(2,3,3))
df2 <- data.frame(d=c(0,1,2,3),n=c(5,5,5,5),i=c(2,3,3,4))

df_list <- list(df1, df2)

解决方案

方法1:使用tidyverse工具(purrr + dplyr)

通过map_dfr遍历列表并按行绑定结果,用str_c将列元素拼接为分号分隔的字符串:

library(tidyverse)

new_df <- map_dfr(df_list, function(df) {
  df %>% 
    summarise(across(everything(), ~str_c(., collapse = ";")))
})

方法2:Base R实现

无需额外安装包,用基础函数完成转换:

new_df <- do.call(rbind, lapply(df_list, function(df) {
  as.data.frame(lapply(df, function(col) paste(col, collapse = ";")), stringsAsFactors = FALSE)
}))

验证结果

运行上述代码后,new_df的输出符合预期:

> new_df
          d         n         i
1    0;1;2    5;5;5    2;3;3
2 0;1;2;3 5;5;5;5 2;3;3;4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 17:38:24