2016-08-15 54 views
3

在特定子集時間序列,我想起從1960子集中的溫度測量值在時間序列gtemp在封裝astsa如何作爲R

enter image description here

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,但我不能做gtemp[as.date(1960)],比如要在1960年得到這個數值。

我該怎麼把o取決於年份和測量值之間的對應關係,以便後面的子集值?

回答

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 
+0

的你能找出一個個體價值的一年 - 例如'0.08'? – Toni

+1

@Toni嘗試'時間(gtemp)[gtemp == 0.08]'應該注意的是,該值是浮點數,所以當使用'=='時可能會出現浮點差異的可能性 – akrun

+1

注意自己:另外'time例如,gtemp)[1]'獲得第一個值。 – Toni