我一直在尝试合并在不同年份从不同人那里获得的横截面数据集。
对于数据收集,每年都会提出大部分相同的问题,但添加或删除了一些问题。因此,有一些变量在数据集之间匹配,而其他一些变量不匹配但仍然很重要。
对你们所有人来说可能很重要的一点是,每年有不同数量的受访者。因此,并非所有变量的每个匹配变量都具有相同数量的元素。
对于上下文,我正在尝试合并三个数据集。但是为了简单起见,我将用 3 个中的 2 个来说明我的以下示例。
我已经尝试了 all = TRUE 的 match() 函数,但是我使用这个函数创建的数据集从我想要堆叠的向量中产生了 3 个向量。例如
internet.x internet.y internet.z
3 3 7
6 4 5
我也尝试过 plyr 包中的 rbind() 函数,但是这种合并模式会删除没有匹配元素的列。
例如,因为data: year2017和data: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
另一个示例是以下变量 = 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。
如果你们都可以把你们的脑力和经验结合起来,帮我解决这个问题,那就太好了:):):)