我想選擇時間序列中最後的n
個項目。我可以使用[
運營商,但我失去了數據的時間序列屬性:選擇時間序列中的最後n個項目
data <- ts(1:10, frequency = 4, start = c(1959, 2))
data[(length(data)-4):length(data)]
我寫了一個包裝函數重新申請系列屬性的時間,但我不知道是否有一個更優雅的方式來做到這一點?
lastN <- function(data,n) {
out <- data[(length(data)-n+1):length(data)]
ts(out, end=end(data), frequency=frequency(data))
}
data
lastN(data,5)
爲什麼[
操作符不會返回時間序列對象?
或者只是使用'tail(data_zoo,5)'。 –
現在有效。我希望能夠直接對ts對象進行索引,但是從動物園轉換到動物園只需要增加2個額外的步驟,並且從易用性的角度來看似乎是值得的。 – Zach
有了@ JoshuaUlrich的偉大建議,它變得更乾淨,並且可以是一個可讀的單行文本。 'lastN <-tail(as.zoo(data),N)' –