gpt4 book ai didi

sql - Dplyr:在面板数据集上寻找与 NA 的连接

转载 作者:行者123 更新时间:2023-12-03 07:28:53 25 4
gpt4 key购买 nike

我有两个表,如下所示:

Table "data"                                 Table "countries"
------------------------------ -----------------
ID Time Country Variable Value ID Country
1 2013 Austria V1 150 1 Austria
1 2014 Austria V1 170 2 Germany
1 2015 Austria V1 200 3 Spain
2 2013 Germany V1 280
2 2015 Germany V1 350

“数据”表是一个面板数据集,由多个国家、多个时间段和多个变量组成(即使我在示例中只包含一个变量)。 “国家/地区”表是所有国家/地区的完整表 - 这里是三个。

我需要做的是一个连接,用 NA 填充“数据”表中缺失的观测值,作为每年的值!连接后,“数据”表应如下所示:

Table "data"                                 
------------------------------
ID Time Country Variable Value
1 2013 Austria V1 150
1 2014 Austria V1 170
1 2015 Austria V1 200
2 2013 Germany V1 280
2 2014 Germany V1 NA
2 2015 Germany V1 350
3 2013 Spain V1 NA
3 2014 Spain V1 NA
3 2015 Spain V1 NA

我认为右连接是正确的方向,它也有效,但它只包含 NA 一次。在上面的示例中,西类牙只会在“数据”表中包含一次。我做了一个简单的连接,如下所示:

joined <- right_join(data, countries, by = c("ID"))

面板数据集是否有类似“重复连接”的东西,或者我是否需要将数据集分割成时间段,分别连接它们并在之后附加它们?

谢谢!

最佳答案

您可以使用 tidyr 包中的 complete:

library(tidyr)
right_join(data, countries) %>%
complete(Time, Variable, nesting(Country, ID))

Time Variable Country ID Value
(int) (chr) (chr) (int) (int)
1 2013 V1 Austria 1 150
2 2013 V1 Germany 2 280
3 2013 V1 Spain 3 NA
4 2014 V1 Austria 1 170
5 2014 V1 Germany 2 NA
6 2014 V1 Spain 3 NA
7 2015 V1 Austria 1 200
8 2015 V1 Germany 2 350
9 2015 V1 Spain 3 NA

关于sql - Dplyr:在面板数据集上寻找与 NA 的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37302353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com