我想在 R 中對長向量執行滑動視窗分析。這樣做,我想檢查該向量的給定片段是否包含特定值。
下面我粘貼一個可重現的示例。該向量 (vctr) 包含 77 個元素(0 或 1)。我正在使用包含 10 個專案(段)的滑動視窗對其進行分析,其中重疊包含 5 個元素(重疊)。
我知道如何檢查給定片段是否包含某個值(在本例中為 1)或不包含(split_vctr)。但是,我還想做其他事情,即:
我想創建一個新變數(串列或向量),僅包含那些滿足給定標準的片段的索引(在這種情況下:至少包含一個等于 1 的值;在這種情況下:TRUE)。
讓我們假設最初的串列將被命名——我怎樣才能只提取為 TRUE 的片段的名稱?
我非常感謝您的幫助。
虛擬資料:
# dummy vector
vctr <- c(rep(0, 11), rep(1, 4), rep(0, 25), rep(1, 3), rep(0, 31),rep(1, 3))
# split parameters:
segment <- 10 # length of each segment
overlap <- 5 # length of each overlapping part
#finding coordinates
start_coordinates <- seq(1, length(vctr), by=segment-overlap)
end_coordinates <- start_coordinates segment - 1
#check whether splitted vector fragments meet a condition
split_vctr <- lapply(1:length(start_coordinates), function(i) 1 %in% vctr[start_coordinates[i]:end_coordinates[i]])
uj5u.com熱心網友回復:
which(unlist(split_vctr))
將回傳split_vctrTRUE的索引
如果split_vctr它本身被命名,您可以使用這些索引來提取 TRUE 片段的名稱,如下所示:
names(split_vctr)[which(unlist(split_vctr))]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/445769.html
下一篇:為什么這個函式會覆寫我的串列?
