【问题标题】:r merge data with different yearr 合并不同年份的数据
【发布时间】:2020-02-12 19:51:03
【问题描述】:

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

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

我想合并数据以检查公司 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

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

【问题讨论】:

  • 能否请您展示一下您到目前为止所尝试的内容。另外,请发reproducible example
  • 使用lag()merge()。这个链接应该有帮助:stackoverflow.com/questions/1299871/…
  • 提供的两个答案中的任何一个都可以为您解决问题吗?如果是,请考虑接受其中之一。

标签: r


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    这样怎么样:

    A$tyear = A$year+1
    AB = merge(A,B,by=c('firm','tyear'),all=F)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-18
      • 2022-01-21
      • 2021-09-13
      • 2023-01-01
      • 2022-01-13
      • 1970-01-01
      • 2019-07-26
      相关资源
      最近更新 更多