Rで時系列の一番数値が大きい月を計算
データ例
data<-seq(3,10,length.out=365) data<-rep(data,8) data<-seq(2,10,length.out=length(data))*data
月別集計:365日の移動平均でトレンドを殺してる.
v3<-v/filter(v,rep(1,365)) v4<-tapply(v3[!is.na(v3)],months((t1[!is.na(v3)])),function(x){mean(x,na.rm=T)})
最大月と最大値計算
max_month<-names(which(v4==max(v4)))
最大月と最小月の計算
r<-max_month/min_month
最大月の表示プログラム
calc_max_month<-function(date1,data,threshold=1.5){ t1<-date1 v<-data v3<-v/filter(v,rep(1,365)) #v4<-tapply(v3[!is.na(v3)],months((t1[!is.na(v3)])),function(x){mean(x,na.rm=T)}) v4<-tapply(v3[!is.na(v3)],format(t1[!is.na(v3)],"%m"),function(x){mean(x,na.rm=T)}) r<-max(v4)/min(v4) if(r>threshold){ result<-as.numeric(names(v4)[which(v4==max(v4))]) }else{ result<--1 } c(result,r) } calc_max_month(t1,data)