R:将新的增长率添加到宽数据框

时间:2018-10-22 04:59:46

标签: r

我是R的新手,正在处理一些看起来像这样的宽数据:

Indicator<-c("C","I","G","NX","GDP")
Y2015<-c(20,20,20,40,100)
Y2016<-c(40,40,40,80,200)
Y2017<-c(60,60,60,120,300)
Y2018<-c(80,80,80,160,400)
df<-data.frame(Indicator,Y2015,Y2016,Y2017,Y2018,stringsAsFactors = FALSE)
df
  Indicator Y2015 Y2016 Y2017 Y2018
1         C    20    40    60    80
2         I    20    40    60    80
3         G    20    40    60    80
4        NX    40    80   120   160
5       GDP   100   200   300   400

我的问题是如何计算每年的GDP增长率,然后将结果附加到新行?结果应类似于:

  Indicator Y2015 Y2016 Y2017 Y2018
1         C    20    40    60    80
2         I    20    40    60    80
3         G    20    40    60    80
4        NX    40    80   120   160
5       GDP   100   200   300   400
6         g    NA  100%  100%  100%

我发现了几种适用于长数据帧的解决方案,但似乎无法解决我的问题。由于实际数据集的大小和缺少的数据,我宁愿不要用行变量切换列变量并将其变成长数据帧。要计算的数据集的实际大小比样本大得多。 非常感谢你!

1 个答案:

答案 0 :(得分:0)

我们可以使用rbind

rbind(df, list("g", NA, "100%", "100%", "100%"))
#   Indicator Y2015 Y2016 Y2017 Y2018
#1         C    20    40    60    80
#2         I    20    40    60    80
#3         G    20    40    60    80
#4        NX    40    80   120   160
#5       GDP   100   200   300   400
#6         g    NA  100%  100%  100%