ペンタッド日付で次のデータをサブセット化しようとしています。 Pentadは5日平均で重複しないことを意味する。うるう年の場合は、ペンタッド12は、2月29日(6平均日数の代わりに5)を備えて:閏年のペンタッド日付に基づくサブセットデータ
ここに私のコードです:
library(stringr)
dat <- read.csv("tc_filt_1981-2007.csv",header = T,sep = ",")
dat$Date = paste(dat$Year, str_pad(dat$Month,2,'left','0'), str_pad(dat$Day,2,'left','0'), sep='-')
dat$yday = as.POSIXlt(dat$Date)$yday + 1
dat$pentad = ceiling(dat$yday/5)
df<-split(dat, dat$pentad)
問題:
dat $ y行は365日間のみ有効です。ある年には73ペンタッドしかなければなりません。上記の私のコードは、dat $ pentadをチェックすると74ペンタッドを生成します。 dfは、各ペンタッドのデータフレームを含む。
は私がやったチェックのために、次のtest<-dat[which(dat$pentad == 74),]
出力:
SN CY Year Month Day Hour Lat Lon Cat Date yday pentad
200034 34 2000 12 31 0 12.7 128.2 TS 2000-12-31 366 74
200034 34 2000 12 31 6 13.3 128.8 TS 2000-12-31 366 74
200034 34 2000 12 31 12 13.9 129.7 TS 2000-12-31 366 74
200034 34 2000 12 31 18 14.4 130.6 TS 2000-12-31 366 74
質問:私は私のコードでは、うるう年を考慮するにはどうすればよい
- ?
どのようにすればいいですか?
多くのおかげで、
_pentad_の定義は、うるう年について何と言っていますか? 2月29日は落ちるのですか?あるいは、2月29日から3月1日までをカバーするPentad 12は、5日ではなく6日で構成されますか? – Uwe
@UweBlock。あなたは正しいです。うるう年の場合、Pentad 12は通常の5日間ではなく6日間です。 Pentadは重複しない平均を意味する。 – ichabod
今、うるう年のペンタッドの定義が明確になっているので、ペンタッドの開始日のリストを1年間取得し、データのフルタイムスパンをカバーする2番目のリストを作成し、 'cut( ) 'を実行します。 – Uwe