首页 > 解决方案 > r 合并不同年份的数据

问题描述

我想合并使用不同年份的两个数据。

我的数据如下所示,有 20 年跨度的 1,000 多家公司。

我想合并数据以检查公司 A 在 t 的比率对公司 A 在 t+1 的计数的影响。

Data A

firm   year   ratio
 A     1990    0.2
 A     1991    0.3
...
 B     1990    0.1
Data B
firm   tyear  count
 A     1990     2
 A     1991     6
...
 B     1990     4
Expected Output

firm year ratio count
 A   1990  0.2   6

对合并数据的代码有什么建议吗?谢谢

标签: r

解决方案


这应该让您开始使用数据集,只需确保您在表格上进行正确的滞后/领先转换。

library(data.table)
dt.a.years <- data.table(Year =seq(from = 1990, to = 2010, by = 1L))
dt.b.years <- data.table(Year =seq(from = 1990, to = 2010, by = 1L))

dt.merged <- merge(  x = dt.a.years
      , y = dt.b.years[, .(Year, lag.Year = shift(Year, n = 1, fill = NA))]
      , by.x = "Year"
      , by.y = "lag.Year")

>dt.merged
    Year Year.y
 1: 1990   1991
 2: 1991   1992
 3: 1992   1993
 4: 1993   1994
 5: 1994   1995
 6: 1995   1996
 7: 1996   1997
 8: 1997   1998
 9: 1998   1999

推荐阅读