如何在不匹配元素的情况下将数据集与某些相同的列合并,而是将它们添加到向量中?

How do I merge data sets with some of the same columns without matching the elements but rather adding them to the vector?

我一直在尝试合并在不同年份从不同人那里获得的横截面数据集。

对于数据 collection,大多数相同的问题每年都会被问到,但有些问题会被添加或删除。因此,有一些变量在数据集中匹配,而另一些变量不匹配但仍然很重要。

有一点可能对大家来说很重要,那就是每年有不同数量的受访者。因此,并非所有变量的每个匹配变量都具有相同数量的元素。

对于上下文,我正在尝试合并三个数据集。但为了简单起见,我将用 3 个中的 2 个来说明我的以下示例。

我已经尝试使用 all = TRUE 的 match() 函数,但我使用此函数创建的数据集从我想要堆叠的向量中提取了 3 个向量。例如

    internet.x internet.y internet.z
        3          3         7 
        6          4         5

我也尝试过 plyr 包中的 rbind() 函数,但这种合并模式会删除没有匹配元素的列。

例如,因为 data: year2017data:year2018 都有一个变量标题 YEAR 例如

    data:year2017  data:year2018
    YEAR              YEAR
    2017              2018
    2017              2018
    2017              2018
    2017              2018
    2017              2018
    2017              2018
    2017              2018
    2017              2018

YEAR 变量在合并产品中被删除,因为同一变量在不同数据集中具有不同的值或元素。

所以...我想在最终产品中保留的是

的合并结果
    data:MERGED
    YEAR
    2017              
    2017         
    2017         
    2017    
    2017
    2017         
    2017              
    2017
    2018              
    2018
    2018
    2018
    2018
    2018
    2018
    2018

另一个例子是下面的variable = var1,它在数据集

中被命名为相同的
    data:year2016  data:year2017   data:year2018  
    var1               var1             var1 
    3                   5                2 
    2                   3                1 
    4                   7                7 
    5                   8                3 
    6                   3                4 

理想情况下生成的产品将是

    data:MERGEDFINAL
    var1
     3
     2
     4
     5
     6
     5
     3
     7
     8
     3
     2
     1 
     7
     3
     4 

我希望发生的是,对于跨数据集相同的所有变量,应该进行堆叠操作。对于不相同的变量,那么仍然应该进行堆叠,但对于在没有为该变量收集数据的那一年参加调查的受访者,用 NA 打包。

如果你们都能集思广益,帮助我解决这个问题,那就太好了:):):)

dplyr 库中的 bind_rows() 函数正是您所需要的!要'merge'三个数据集合二为一,同时尊重列名,使用如下命令:

library(dplyr)
dfAll<-bind_rows(dfA, dfB, dfC)

编辑:更新,直接调用所有三个数据集。删除了第一次发布的中间步骤。