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

R语言合并同列名数据框实现单元格存储为向量/列表的方法

R实现两个同结构数据框按位置合并为列表列数据框

核心实现逻辑

遍历两个数据框的同名列,将每列对应位置的两个元素拼接为长度为2的向量,以列表列的形式存储在新数据框中,完全保留原有数据类型。

方法1:基础R实现(无需安装额外包)

# 示例输入数据框
DF1 <- data.frame(
    xx = c(1:5),
    yy = c(2:6),
    zz = c("a","b","c","d","e"))
DF2 <- data.frame(
    xx = c(3:7),
    yy = c(5:9),
    zz = c("a","i","h","g","f"))

# 合并代码
merged_df <- data.frame(
  Map(function(x, y) mapply(c, x, y, SIMPLIFY = FALSE), DF1, DF2),
  check.names = FALSE
)

方法2:tidyverse风格实现

library(purrr)
library(tibble)

merged_df <- map2_df(DF1, DF2, ~map2(.x, .y, c))

结果验证

# 查看第一个单元格的数值型向量
merged_df$xx[[1]]
# 输出:1 3
class(merged_df$xx[[1]])
# 输出:integer (保留数值类型)

# 查看字符列第一个单元格的向量
merged_df$zz[[1]]
# 输出:"a" "a"
class(merged_df$zz[[1]])
# 输出:character (保留字符类型)

内容的提问来源于stack exchange,提问作者Jean-Alexandre Patteet

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:36:04