如何从 R 中的面板数据计算增长率(1 年和 3 年)
How to compute growth rate (1- and 3-year horizon) from panel data in R
我有几家银行的面板数据集,每家银行从 1997 年到 2015 年都有年度观察 s.t.:
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) LOANS_NET 1 年期增长率
2) LOANS_NET 3 年的增长率,计算后必须年化。
例如:
Loan Growth 3-year = [Bank's(i) LOANS_NET Year(t) / Bank's(i) LOANS_NET Year(t-3)] -1
nb: 数据包含大量缺失值,代码必须考虑这个问题! :)
@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]
然后你想做什么就做什么:)干杯!
我有几家银行的面板数据集,每家银行从 1997 年到 2015 年都有年度观察 s.t.:
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) LOANS_NET 1 年期增长率
2) LOANS_NET 3 年的增长率,计算后必须年化。
例如:
Loan Growth 3-year = [Bank's(i) LOANS_NET Year(t) / Bank's(i) LOANS_NET Year(t-3)] -1
nb: 数据包含大量缺失值,代码必须考虑这个问题! :)
@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]
然后你想做什么就做什么:)干杯!