次のデータをペンタッド日付でサブセット化しようとしています。Pentad は、重複しない 5 日間の平均を意味します。うるう年の場合、Pentad 12 には 2 月 29 日が含まれます (平均 5 日ではなく 6 日)。
これが私のコードです:
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)
問題:
date$y行は365 日間のみ機能します。ある年には、ペンタドは 73 個しかないはずです。上記のコードは、dat$pentadをチェックすると 74 個の pentad を生成します。df には、各 pentad のデータ フレームが含まれています。
確認のために次のことを行いました。
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
質問:
- コードでうるう年をどのように説明するのですか?
誰でもこれを行う方法を提案できますか?
どうもありがとう、