Em um banco de dados contendo valores de classe de empresa e patente, quero calcular as seguintes variáveis:
Abandono tecnológico: Número de classes de patentes tecnológicas anteriormente ativas abandonadas anualmente.
Especificamente, quero criar variáveis que calculem o número de classes de patentes (variável = classe) que a empresa usou nos últimos 3 anos (t-3, t-2 e t-1) (a observação mínima de um ano anterior é aceitável se o histórico inicial da empresa não tiver 3 anos), mas que estão faltando neste ano (t). Gostaria de fazer o mesmo com uma janela de 5 anos também.
Tenho um conjunto de dados contendo milhões de linhas, então uma solução rápida de data.table é muito preferível.
No seguinte conjunto de dados:
df <- data.table(year=c(1979,1979,1980,1980,1981,1981,1982,1983,1983,1984,1984),
category = c("A","A","B","C","A","D","F","F","C","A","B"))
O resultado desejado seria (para uma janela de três anos):
year class tech_aband_3
1: 1979 A 0
2: 1979 A 0
3: 1980 B 1
4: 1980 C 1
5: 1981 A 2
6: 1981 D 2
7: 1982 F 4
8: 1983 F 3
9: 1983 C 3
10: 1984 A 3
11: 1984 B 3
No final, terei que executar a solução pelo ID da empresa.
Muito obrigado antecipadamente.