如果我有一组每日数据,我想获得每个月的最小值,以及该值发生的日期。如果我使用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
答案 0 :(得分:2)
apply.monthly
在每个时段的终点使用period.apply
和始终索引。如果您想要不同的行为,则需要使用更多通用功能。
在这种情况下,您可以将lapply(split(), ...)
惯用法与自定义函数一起使用:
do.call(rbind, lapply(split(ts,"months"), function(x) x[which.min(x)]))