我制作了一个时间序列:
t = ts(rnorm(12 * 50),start = 1900,freq = 12)
然后找到max(t)
的最大值。有没有方便的方法来确定这个最大值出现的日期?
答案 0 :(得分:3)
尝试which.max()
适用于多种对象类型,包括ts
,例如:
R> set.seed(42); tser <- ts(rnorm(12*2), start=2010, freq=12)
R> which.max(tser)
[1] 12 ## so index 12 is suggsted
R> tser[12] ## what is its value?
[1] 2.28665 ## 2.28665 -- indeed the max.
R> tser
Jan Feb Mar Apr May
2010 1.3709584 -0.5646982 0.3631284 0.6328626 0.4042683
2011 -1.3888607 -0.2787888 -0.1333213 0.6359504 -0.2842529
Jun Jul Aug Sep Oct
2010 -0.1061245 1.5115220 -0.0946590 2.0184237 -0.0627141
2011 -2.6564554 -2.4404669 1.3201133 -0.3066386 -1.7813084
Nov Dec
2010 1.3048697 2.2866454
2011 -0.1719174 1.2146747
R>
如果您从ts
转换为zoo
,您甚至会显示元数据:
R> zser <- as.zoo(tser)
R> which.max(zser)
[1] 12
R> zser[12]
2010(12)
2.28665
R>
显示具有最大值的数据点的2010年12月标签。