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

