【发布时间】:2016-08-17 13:38:56
【问题描述】:
我有一个数据如下。
cotton <- structure(list(V1 = c(52L, 49L, 49L, 44L, 47L, 52L, 45L, 51L,
54L, 57L, 67L, 71L, 66L, 65L, 75L, 66L, 70L, 70L, 69L, 71L, 70L,
72L, 73L, 73L, 75L, 69L, 77L, 75L, 71L, 74L, 69L, 71L, 70L, 78L,
74L, 72L, 74L, 72L, 73L, 73L, 72L, 70L, 73L, 71L, 76L, 79L, 68L,
79L, 76L, 78L, 78L, 78L, 75L, 75L, 73L, 78L, 78L, 78L, 81L, 80L,
79L, 84L, 82L, 81L, 80L, 83L, 77L, 81L, 82L, 83L, 82L, 86L, 78L,
82L, 81L, 79L, 79L, 80L, 75L, 78L, 78L, 77L, 80L, 80L, 80L, 82L,
81L, 84L, 83L, 82L, 84L, 81L, 80L, 83L, 87L, 81L, 84L, 84L, 82L,
84L, 83L, 84L, 82L, 80L, 78L, 84L, 84L, 84L, 82L, 84L, 79L, 82L,
79L, 79L, 72L, 73L, 78L, 82L, 83L, 81L, 77L, 75L, 70L, 71L, 66L,
59L, 57L, 62L, 60L, 58L, 59L, 56L, 53L, 55L, 56L, 57L, 62L, 58L,
56L, 60L, 63L, 66L, 71L, 74L, 70L, 74L, 75L, 74L, 77L, 79L, 76L,
77L, 79L, 80L, 81L, 78L, 77L, 78L, 77L, 75L, 71L, 66L, 63L, 57L,
55L, 55L, 55L, 54L, 57L, 57L, 53L, 54L, 60L, 63L, 65L, 64L, 68L,
74L, 73L, 74L, 75L, 73L, 77L, 75L, 76L, 68L, 73L, 49L, 69L, 80L,
82L, 78L, 71L, 70L, 73L, 71L, 68L, 72L, 70L, 43L, 72L, 81L, 81L,
80L, 73L, 73L, 72L, 68L, 71L, 73L, 67L, 43L, 68L, 69L, 77L, 78L
)), .Names = "V1", class = "data.frame", row.names = c(NA, -216L
))
我想分析这个数据框的最后 100 个值。我使用 ts() 函数将其转换为具有已知开始和频率的时间序列对象。但是当我取最后 100 个值如下时,
cotton.ts <- ts(cotton, start = 2000, frequency = 12)
if(length(cotton.ts) > 100 ){
cotton.ts <- cotton.ts[(length(cotton.ts)-99):length(cotton.ts)]
}
cotton.ts 成为一个向量。我需要它是一个时间序列,但频率和开始年份总是在变化。所以我不想一直寻找新的开始年份和月份来让它再次成为时间序列。有没有办法在不浪费时间的情况下做到这一点?
【问题讨论】:
-
无论是时间序列还是数据框,
tail(cotton, 100)都应该这样做。 -
@RHertel 它给了我最后 100 个值,但不是时间序列。
标签: r time-series