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