#假如資料框是data,第一列是資料,第二列是日期(格式是2014-01),第三列是地名(local),第四列是產業名(product)
ds<-sort(as.character(unique(data[,2])))#將所有的日期提取出來,形成可能出現的月份,並排序
m1<-length(ds)
data2<-list()
for(k in 1:m1){
dv<-data[data[,2]==ds[k],]#每個月的資料
data2[[k]]<-dv[order(dv[,3]),]#將每個月的資料按照地理名稱(預設是漢語拼音首字母)排序
}
#這樣就得到了每個月的資料,而且是按照地理名稱排名的
#接下來就得到各個季度的季度值(季度值是累加的,如第二季度其實是前六個月的累計值)
#先將資料按照各個季度合在一起
#首先將月份資料轉化為季度資料
m2<-m1/3#每個季度三個月
data3<-list()
for(k in 1:m2)
data3[[k]]<-rbind(data2[[3*k-2]],data2[[3*k-1]],data5[[2*k]])
#再算出各個季度的當季(三個月,比如:第二季度其實是6,7,8三個月)資料
fun1<-function(data3){
data3<-data3[order(data3[,3]),]#按照地理名稱排名
dm1<-unique(data3[,3]);#地名
dv5<-c()
for(i in 1:length(dm1)){
dv2<-data3[data3[,3]==dm1[i],]
dm2<-unique(dv2[,4])#產業名
dv4<-c()
for(j in 1:length(dm2)){
dv3<-c(dm1[i],dm2[j],sum(as.numeric(dv2[dv2[,4]==dm2[j],1])))
dv4<-rbind(dv4,dv3)
dv5<-rbind(dv5,dv4)
return(dv5)#這樣得到的資料格式為(“地名”,“產業名”,資料)
data4<-list()
data4[[k]]<-fun1(data3[[k]])#得到資料的當期值
#最後計算出季度值(累積值)
data5<-rbind(data4[[1]],data4[[2]])#2季度合併
data6<-rbind(data4[[1]],data4[[2]],data4[[3]])#3季度合併
data7<-rbind(data4[[1]],data4[[2]],data4[[3]],data4[[4]])#4季度合併
data8<-fun1(data6)#2季度累積值
data9<-fun1(data6)#3季度累積值
data10<-fun1(data7)#4季度累積值
data_q<-list(data4[[1]],data8,data9,data10)#四個季度的累積值
#需要注意,其實每年的第四個季度的累積值就是年份資料
#假如資料框是data,第一列是資料,第二列是日期(格式是2014-01),第三列是地名(local),第四列是產業名(product)
ds<-sort(as.character(unique(data[,2])))#將所有的日期提取出來,形成可能出現的月份,並排序
m1<-length(ds)
data2<-list()
for(k in 1:m1){
dv<-data[data[,2]==ds[k],]#每個月的資料
data2[[k]]<-dv[order(dv[,3]),]#將每個月的資料按照地理名稱(預設是漢語拼音首字母)排序
}
#這樣就得到了每個月的資料,而且是按照地理名稱排名的
#接下來就得到各個季度的季度值(季度值是累加的,如第二季度其實是前六個月的累計值)
#先將資料按照各個季度合在一起
#首先將月份資料轉化為季度資料
m2<-m1/3#每個季度三個月
data3<-list()
for(k in 1:m2)
data3[[k]]<-rbind(data2[[3*k-2]],data2[[3*k-1]],data5[[2*k]])
#再算出各個季度的當季(三個月,比如:第二季度其實是6,7,8三個月)資料
fun1<-function(data3){
data3<-data3[order(data3[,3]),]#按照地理名稱排名
dm1<-unique(data3[,3]);#地名
dv5<-c()
for(i in 1:length(dm1)){
dv2<-data3[data3[,3]==dm1[i],]
dm2<-unique(dv2[,4])#產業名
dv4<-c()
for(j in 1:length(dm2)){
dv3<-c(dm1[i],dm2[j],sum(as.numeric(dv2[dv2[,4]==dm2[j],1])))
dv4<-rbind(dv4,dv3)
}
dv5<-rbind(dv5,dv4)
}
return(dv5)#這樣得到的資料格式為(“地名”,“產業名”,資料)
}
data4<-list()
for(k in 1:m2)
data4[[k]]<-fun1(data3[[k]])#得到資料的當期值
#最後計算出季度值(累積值)
data5<-rbind(data4[[1]],data4[[2]])#2季度合併
data6<-rbind(data4[[1]],data4[[2]],data4[[3]])#3季度合併
data7<-rbind(data4[[1]],data4[[2]],data4[[3]],data4[[4]])#4季度合併
data8<-fun1(data6)#2季度累積值
data9<-fun1(data6)#3季度累積值
data10<-fun1(data7)#4季度累積值
data_q<-list(data4[[1]],data8,data9,data10)#四個季度的累積值
#需要注意,其實每年的第四個季度的累積值就是年份資料