펜타 드 날짜별로 다음 데이터를 부분 집합하려고합니다. Pentad는 5 일간 중복되지 않는 평균값을 의미합니다. 윤년의 경우, 펜타 12 월 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는 각 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
질문 : 내 코드에서 윤년을 고려 어떻게
- ?
누구에게 어떻게하면 좋을까요?
많은 감사,
_pentad_의 정의는 윤년에 대해 무엇을 말하는가? 2 월 29 일이 내려갈 예정입니까? 또는 2 월 29 일부터 3 월 1 일까지를 다루는 Pentad 12는 5 대신 6 일로 구성됩니까? – Uwe
@UweBlock. 당신이 올바른지. 윤년의 경우, Pentad 12는 보통 5 일 대신 6 일을 사용합니다. Pentad는 겹치지 않는 평균을 의미합니다. – ichabod
이제 윤년의 펜타드 정의가 명확 해 졌으므로 1 년 동안 펜타드 시작일 목록을 얻고, 데이터의 전체 기간을 다루는 두 번째 목록을 만들고 'cut ()'을 선택하십시오. – Uwe