你没有看错,确实是求增长率。用Excel可以很简单的使用=(A1-A2)/A1*100再加鼠标拖动就可以实现的功能,在R下确实让我头痛了一个晚上,在网上找了一个没有找到理想的结果,刚好在群友的文章中学到了for()函数,然后就有了下面的代码:
library(openxlsx)
path<-"D:/日常工作数据.xlsx"
excelDate<-read.xlsx(path,"Sheet1")
YEAR<-c(2004:2013)
POBrate<-c(1:10)
for(i in 2:11)(POBrate[i-1]<-(excelDate$POB[i]/excelDate$POB[i-1]-1)*100)
AYWrate<-c(1:10)
for(i in 2:11)(AYWrate[i-1]<-(excelDate$AYW[i]/excelDate$AYW[i-1]-1)*100)
NSEBPSrate<-c(1:10)
for(i in 2:11)(NSEBPSrate[i-1]<-(excelDate$NSEBPS[i]/excelDate$NSEBPS[i-1]-1)*100)
HBrate<-c(1:10)
for(i in 2:11)(HBrate[i-1]<-(excelDate$HB[i]/excelDate$HB[i-1]-1)*100)
YRPrate<-c(1:10)
for(i in 2:11)(YRPrate[i-1]<-(excelDate$YRP[i]/excelDate$YRP[i-1]-1)*100)
BRrate<-c(1:10)
for(i in 2:11)(BRrate[i-1]<-(excelDate$BR[i]/excelDate$BR[i-1]-1)*100)
excelRate<-data.frame(YEAR,POBrate,AYWrate,NSEBPSrate,HBrate,YRPrate,BRrate)
excelRate
结果就是:
YEAR POBrate AYWrate NSEBPSrate HBrate YRPrate BRrate
1 2004 23.5393469 4.302375 9.4679319 12.524788 2.8948822 20.063646
2 2005 23.5860044 1.716362 4.8884562 9.805442 3.3653846 19.562274
3 2006 8.1943705 8.101367 -5.8405909 3.954548 5.2370885 2.810114
4 2007 30.1094407 10.513573 2.8806930 3.538566 4.7376880 24.224091
5 2008 6.9969148 12.000619 0.4270891 9.954670 4.5935311 2.297832
6 2009 0.9139873 7.522898 4.7104796 7.794955 4.2681393 -3.216852
7 2010 8.7444067 7.989641 14.4059089 6.511675 4.2401584 4.321030
要注意的地方--难道R是不可以随用随定义变量的嘛?还是for()函数下面不可以?各位注意一下哦!