面板數據
合併具有兩個不同拆分的面板數據。是否可以?
我有兩個帶有面板數據的數據框。第一個包含公司的年度數據。佈局如下:
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 ...
讓這兩個數據框是
DF1
和DF2
。DF1
正如 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