R-组合数据集



我有15个数据集。第一列是"主题",并且在所有集合中都是相同的。在所有数据集中,其余列的数量均不相同。我需要将所有这些数据组合到单个数据框架中。我发现命令"降低",但我只是从r开始,我不明白这是否是我需要的,如果是,语法是什么?谢谢!

我建议将来包括一个可再现的示例,以便其他人可以看到您正在使用的数据格式以及您要做的事情。

这是一些随机生成的示例数据,每个数据都带有"主题"列:

list_of_dfs <- list(
   df1 = data.frame(Subject = 1:4, a = rnorm(4), b = rnorm(4)),
   df2 = data.frame(Subject = 5:8, c = rnorm(4), d = rnorm(4), e = rnorm(4)),
   df3 = data.frame(Subject = 7:10, f = rnorm(4)),
   df4 = data.frame(Subject = 2:5, g = rnorm(4), h = rnorm(4))
)

Reduce带有merge是一个不错的选择:

combined_df <- Reduce(
  function(x, y) { merge(x, y, by = "Subject", all = TRUE) },
  list_of_dfs
)

和输出:

> combined_dfs
   Subject          a          b          c           d         e          f          g          h
1        1  1.1106594  1.2530046         NA          NA        NA         NA         NA         NA
2        2 -1.0275630  0.6437101         NA          NA        NA         NA -1.9393347 -0.4361952
3        3  0.1558639  1.2792212         NA          NA        NA         NA -0.8861966  1.0137530
4        4  0.4283585 -0.1045530         NA          NA        NA         NA  1.8924896 -0.3788198
5        5         NA         NA 0.08261190  0.77058804 -1.165042         NA  0.7950784 -1.3467386
6        6         NA         NA 2.51214598  0.62024328  1.496520         NA         NA         NA
7        7         NA         NA 0.01581309 -0.04777196 -1.327884  1.5111734         NA         NA
8        8         NA         NA 0.80448136 -0.33347573 -2.290428 -0.3863564         NA         NA
9        9         NA         NA         NA          NA        NA -1.2371795         NA         NA
10      10         NA         NA         NA          NA        NA  1.6819063         NA         NA

最新更新