如何从apply.monthly函数中提取日期

时间:2014-01-27 17:03:47

标签: r xts

如果我有一组每日数据,我想获得每个月的最小值,以及该值发生的日期。如果我使用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

1 个答案:

答案 0 :(得分:2)

apply.monthly在每个时段的终点使用period.apply始终索引。如果您想要不同的行为,则需要使用更多通用功能。

在这种情况下,您可以将lapply(split(), ...)惯用法与自定义函数一起使用:

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