Rで時系列の一番数値が大きい月を計算 

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)