r объединить данные с другим годом - PullRequest
0 голосов
/ 16 октября 2019

Я хотел бы объединить две данные, используя разные годы.

Мои данные похожи на приведенные ниже с более чем 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

Есть предложения по коду для объединения данных? Спасибо

Ответы [ 2 ]

1 голос
/ 16 октября 2019

Это должно помочь вам начать работу с набором данных, просто убедитесь, что вы выполняете правильное преобразование запаздывания / опережения в таблице.

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
0 голосов
/ 16 октября 2019

Как примерно так:

A$tyear = A$year+1
AB = merge(A,B,by=c('firm','tyear'),all=F)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...