首页 > 解决方案 > 将r中的数据矩形化的简单方法

问题描述

我有一个带有 dyads 的面板数据集,看起来像这样

nsamp1 <- data.frame("id_1" = c("A", "A", "B", "C"), 
                     "id_2" = c("a","b", "a","b"),
                     "Year" = c(1990, 1991, 1990, 1991), 
                     "Val" = runif(4, min=0, max=100), stringsAsFactors = FALSE)
#     id_1 id_2 Year    Val
# 1    A    a   1990  59.16656
# 2    A    b   1991  71.03290
# 3    B    a   1990  89.68864
# 4    C    b   1991  36.56359

我想找到一种有效的方法来矩形化数据,以便创建所有可能的组合id_1id_2year创建一个nxnxt数据集

最终数据应如下所示:

#      id_1 id_2 Year    Val
# 1     A    a   1990  59.16656
# 2     A    b   1990  NA
# 3     A    a   1991  NA
# 4     A    b   1991  71.03290
# 5     B    a   1990  89.68864
# 6     B    b   1990  NA
# 7     B    a   1991  NA
# 8     B    b   1991  NA
# 9     C    a   1990  NA
# 10    C    b   1990  NA
# 11    C    a   1991  NA
# 12    C    b   1991  36.56359

我知道如何在多个步骤中做到这一点。但我正在寻找一个单行解决方案来清理我的代码,比如fillinSTATA 中的函数。

我知道有一个包library(SciencesPo)具有矩形化功能,但由于许多错误,该包已被弃用并且不再可用。此外,由于某种原因,使用存档版本不起作用。

有谁知道这个问题的简单解决方案?

预先感谢您的帮助

标签: rdata-manipulationpanel-data

解决方案


推荐阅读