簡體   English   中英

使用 Rollapply 函數返回索引值或計數

[英]Return Index value or Count with Rollapply Function

謝謝你的幫助! 我正在處理時間序列數據並嘗試確定發生觀察的計數,同時使用 R 中的 rollapply 函數。為了澄清,這里有一些代碼:

# Sample Data
dates <- c("2014-01-01","2014-01-02","2014-01-03","2014-01-04","2014-01-05",
       "2014-01-06","2014-01-07","2014-01-08","2014-01-09","2014-01-10")
data <- c(20,12,31,26,22,22,31,10,22,23)
xts.object <- as.xts(data,as.Date(dates))

# Apply 4-Day Min
rollMin <- rollapply(xts.object,4,min)
xts.object2 <- cbind(xts.object,rollMin)

# Desired Output
desiredOutput <- c(NA,NA,NA,3,4,1,2,1,2,3)
xts.object3 <- cbind(xts.object2,desiredOutput)
colnames(xts.object3) <- c("data","rollMin","desiredOutput")

在此處輸入圖片說明

期望輸出的前 3 個觀察結果是 NA,因為為 rollapply 函數選擇的窗口大小設置為 4。在第 4 次觀察中,最小值為 12,並且已經存在 3 天,因此期望輸出在 2014-01- 04.

再次感謝!

您也可以在此處使用rollapply which.min將返回最小值的索引。 要獲得天數范圍,您必須通過索引減小窗口大小(+ 1,因為在 R 索引中從 1 開始)。

rollapply(xts.object,4,function(x)NROW(x)-which.min(x)+1)
#           [,1]
#2014-01-01   NA
#2014-01-02   NA
#2014-01-03   NA
#2014-01-04    3
#2014-01-05    4
#2014-01-06    2
#2014-01-07    3
#2014-01-08    1
#2014-01-09    2
#2014-01-10    3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM