首頁>Club>
7
回覆列表
  • 1 # 海上會好嗎

    #假如資料框是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)#四個季度的累積值

    #需要注意,其實每年的第四個季度的累積值就是年份資料

  • 中秋節和大豐收的關聯?
  • 天下一傢什麼時候形成的?