2014-01-27 1 views
1

일별 데이터 집합이있는 경우 매월 최소값과 해당 값이 발생한 날짜를 가져 오려고합니다. 함수를 사용하면 최소값을 제공하지만 해당 날짜는 실제로 발생한 날짜가 아니라 매월 말일입니다. 정확한 날짜를 얻으려면 어떻게해야합니까?apply.monthly 함수에서 날짜를 추출하는 방법

library(xts) 
#create sample data 
dates<-seq(from=as.Date("1970-01-01"),to=as.Date("1970-12-31"),by=1) 
x<-sample(1:365,365) 
ts<-xts(x,dates) 

#apply function 
monthly.mins<-apply.monthly(ts,min) 
monthly.mins 

답변

2

apply.monthly는 각 기간의 엔드 포인트에서 항상 인덱스 period.apply를 사용합니다. 다른 행동을 원하면보다 일반적인 기능을 사용해야합니다.

이 경우, 사용자 정의 기능과 lapply(split(), ...) 관용구를 사용할 수 있습니다

do.call(rbind, lapply(split(ts,"months"), function(x) x[which.min(x)])) 
+0

매우 빠르게하지하지만 잘 작동합니다. –