面板數據

合併具有兩個不同拆分的面板數據。是否可以?

  • October 29, 2019

我有兩個帶有面板數據的數據框。第一個包含公司的年度數據。佈局如下:

ID Year x1  x2  x3
A1 2000 10  11  12
A2 2000 13  25  20
A1 2001 13  58  13

等等。第二個數據集包含相同的公司,但數據按州和年份劃分。

ID  Year  State  xx1  xx2  xx3
A1  2000   AL    581  135  1.22
A1  2000   FL    584  51    1.5
A2  2000   AL    5138 84   1.7
...

現在,我想知道是否以及如何合併這兩者?從經濟上講,擁有這些不同的數據面板是有意義的,因為某些數據僅適用於整個公司級別(總資產、債務、收入),而某些數據可以拆分,例如:州收入;州內的客戶等等……

我非常感謝對此的任何想法!

ps 使用 R

我只是將它們水平合併…以便主數據集是第二個,並且您將全國范圍的統計數據包含在每一行中:

ID  Year  State  xx1  xx2  xx3   x1  x2  x3
A1  2000   AL    581  135  1.22  10  11  12
A1  2000   FL    584  51   1.5   10  11  12
A2  2000   AL    5138 84   1.7   13  25  20
...

讓這兩個數據框是DF1DF2DF1正如 Art 的回答所建議的那樣,將它們合併到公司狀態級別的面板數據中(重複變數):

idx <- match(paste(DF2$ID, DF2$Year), paste(DF1$ID, DF1$Year))
for (v in c('x1', 'x2', 'x3')) DF2[[v]] <- DF1[idx,v]

完整範例:

DF1 <- data.frame(ID=c('A1','A2','A1'), Year=c(2000,2000,2001),
                 x1=c(10,13,13), x2=c(11,25,58), x3=c(12,20,13))
# DF1
#   ID Year x1 x2 x3
# 1 A1 2000 10 11 12
# 2 A2 2000 13 25 20
# 3 A1 2001 13 58 13

DF2 <- data.frame(ID=c('A1','A1','A2'), Year=c(2000,2000,2000),
                 State=c('AL','FL','AL'),
                 xx1=c(581,584,5138), xx2=c(135,51,84), xx3=c(1.22,1.5,1.7))
# DF2
#   ID Year State  xx1 xx2  xx3
# 1 A1 2000    AL  581 135 1.22
# 2 A1 2000    FL  584  51 1.50
# 3 A2 2000    AL 5138  84 1.70

idx <- match(paste(DF2$ID, DF2$Year), paste(DF1$ID, DF1$Year))
for (v in c('x1', 'x2', 'x3')) DF2[[v]] <- DF1[idx,v]

DF2
#   ID Year State  xx1 xx2  xx3 x1 x2 x3
# 1 A1 2000    AL  581 135 1.22 10 11 12
# 2 A1 2000    FL  584  51 1.50 10 11 12
# 3 A2 2000    AL 5138  84 1.70 13 25 20

引用自:https://economics.stackexchange.com/questions/32458