我有几个银行的面板数据集,每个银行从1997年到2015年,年度观察数据为:
CODE COUNTRY YEAR LOANS_NET ...other variables
671405 AT 1997 39028938
671405 AT 1998 41033237
671405 AT 1999 35735062
...
...
671405 AT 2015 130701872
...
30885R DE 2004 200024673
...
...
使用R,我需要计算另外两列:
1)1年期间的LOANS_NET增长率
2)3年期间的LOANS_NET增长率,一旦计算,必须按年计算。
例如:
Loan Growth 3-year = [Bank's(i) LOANS_NET Year(t) / Bank's(i) LOANS_NET Year(t-3)] -1
nb:数据包含大量缺失值,代码必须考虑该问题! :)
答案 0 :(得分:2)
@Dan您使用任何套餐吗?我建议您使用zoo和data.table包并按以下方式转换日期:
DT[, YearNumeric := as.numeric(YEAR)]
DT[, PreviousYearLoanNet := .SD[match(YearNumeric - 1, .SD$YearNumeric), LOANS_NET], by=CODE]
在此处,您创建一个包含先前( - 1年)贷款值的列。然后创建一个包含增长的新列:
DT[,Growth1Y:= (YEARLOANNET- PreviousYearLoanNet)/PreviousYearLoanNet]
然后你做任何你想做的事:)干杯!