首页 > 解决方案 > 如何通过合并 R 中不同数据框中具有相同名称的列来创建新数据框?

问题描述

在 R 中,我想从以下数据框中为每个列名创建一个新的数据框:

agedf <- data.frame(A = c(12,14,16,18), B = c(13,15,17,19), C = c(11,13,15,17))
heightdf <- data.frame(A = c(110,120,130,140), B = c(120,130,140,150), C = c(115,125,135,145))
weightdf <- data.frame(A = c(80,90,100,110), B = c(90,100,110,120), C = c(85,95,105,115))

期望的结果是有一个公式,它为 A、B 和 C 中的每一个创建一个数据框,并分别使用它们的agedf、heightdf 和 weightdf 列。即最终得到 3 个数据框,如这张 Excel 照片所示: Excel 所需的结果

我怎样才能做到这一点?

标签: rdataframe

解决方案


这是一种使用tidyverse.

library(dplyr)
library(purrr)

df_list <- list(Age = agedf,
                Height = heightdf,
                Weight = weightdf)

map(transpose(df_list), bind_cols)
# $A
# # A tibble: 4 x 3
# Age Height Weight
# <dbl>  <dbl>  <dbl>
#   1    12    110     80
#   2    14    120     90
#   3    16    130    100
#   4    18    140    110
# 
# $B
# # A tibble: 4 x 3
# Age Height Weight
# <dbl>  <dbl>  <dbl>
#   1    13    120     90
#   2    15    130    100
#   3    17    140    110
#   4    19    150    120
# 
# $C
# # A tibble: 4 x 3
# Age Height Weight
# <dbl>  <dbl>  <dbl>
#   1    11    115     85
#   2    13    125     95
#   3    15    135    105
#   4    17    145    115

推荐阅读