如何在R中对时间序列进行子集化

时间:2016-08-15 05:23:00

标签: r time-series

特别是,我希望在class Something include Constants MB = KB * KB end 包中的时间序列1960中对gtemp以后的温度测量值进行分组:

enter image description here

astsa

个别时间点未标注多年,因此虽然我可以require(astsa) gtemp Time Series: Start = 1880 End = 2009 Frequency = 1 [1] -0.28 -0.21 -0.26 -0.27 -0.32 -0.32 -0.29 -0.36 -0.27 -0.17 -0.39 -0.27 -0.32 [14] -0.33 -0.33 -0.25 -0.14 -0.11 -0.25 -0.15 -0.07 -0.14 -0.24 -0.30 -0.34 -0.24 [27] -0.19 -0.39 -0.33 -0.35 -0.33 -0.34 -0.32 -0.30 -0.15 -0.10 -0.30 -0.39 -0.33 [40] -0.20 -0.19 -0.14 -0.26 -0.22 -0.22 -0.17 -0.02 -0.15 -0.12 -0.26 -0.08 -0.02 [53] -0.08 -0.19 -0.07 -0.12 -0.05 0.07 0.10 0.01 0.04 0.10 0.03 0.09 0.19 [66] 0.06 -0.05 0.00 -0.04 -0.07 -0.16 -0.04 0.03 0.11 -0.10 -0.10 -0.17 0.08 [79] 0.08 0.06 -0.01 0.07 0.04 0.08 -0.21 -0.11 -0.03 -0.01 -0.04 0.08 0.03 [92] -0.10 0.00 0.14 -0.08 -0.05 -0.16 0.12 0.01 0.08 0.18 0.26 0.04 0.26 [105] 0.09 0.05 0.12 0.26 0.31 0.19 0.37 0.35 0.12 0.13 0.23 0.37 0.29 [118] 0.39 0.56 0.32 0.33 0.48 0.56 0.55 0.48 0.62 0.54 0.57 0.43 0.57 ,但我无法gtemp[3] [1] -0.26,例如在1960年获得该值。

如何显示年份和测量值之间的对应关系,以便以后的子集值?

2 个答案:

答案 0 :(得分:6)

我们可以使用window函数

gtemp1 <- window(gtemp, start = 1960)
gtemp1
#Time Series:
#Start = 1960 
#End = 2009 
#Frequency = 1 
#[1] -0.01  0.07  0.04  0.08 -0.21 -0.11 -0.03 -0.01 -0.04  0.08  0.03
#[12]-0.10  0.00  0.14 -0.08 -0.05 -0.16  0.12  0.01  0.08  0.18  0.26  
#[23] 0.04  0.26  0.09  0.05   0.12  0.26  0.31  0.19  0.37  0.35  0.12
#[34] 0.13  0.23  0.37  0.29  0.39  0.56  0.32  0.33  0.48  0.56  0.55
#[45] 0.48  0.62  0.54  0.57  0.43  0.57

答案 1 :(得分:1)

功能time也可以帮助回答您的问题

如何得出年份和度量值之间的对应关系,以便以后获得子集值?

head(time(gtemp))
[1] 1880 1881 1882 1883 1884 1885

如果要使用与1961相对应的值,可以编写

gtemp[time(gtemp) == 1961]
[1] 0.07

如第一个答案所述,您还可以使用函数window

window(gtemp, start = 1961, end = 1961)
Time Series:
Start = 1961 
End = 1961 
Frequency = 1 
[1] 0.07

,将结果作为点时间序列返回。您可以通过以下方式将其转换为数字

as.numeric(window(gtemp, start = 1961, end = 1961))
[1] 0.07