如何在給定 R 向量中連續值的長度的情況下找到連續值的起始位置?
要找到給定 R 向量中連續值的長度的連續值的起始位置,我們可以按照以下步驟操作:
- 首先,建立一個包含重複值的向量。
- 找到執行長度。
- 建立一個值為 FALSE 的向量,其大小與向量相同。
- 透過將給定長度的連續值的執行長度設定為 TRUE 來找到起始位置。
建立向量
讓我們建立一個包含許多重複項的向量,以便我們可以獲得相同的連續值:
x<-sample(0:2,250,replace=TRUE) x
執行上述指令碼後,會生成以下輸出(由於隨機化,此輸出會在您的系統上有所不同):
[1] 0 2 2 0 2 1 2 2 2 1 1 1 0 1 0 2 0 2 2 1 2 2 1 0 2 1 2 0 2 0 0 2 2 0 0 2 2 [38] 0 2 0 1 2 2 1 2 2 1 0 2 2 2 0 1 2 2 2 2 2 1 2 2 2 0 0 2 0 0 0 2 1 2 1 2 2 [75] 2 1 0 1 0 1 2 0 1 0 2 0 1 2 2 2 1 0 2 1 2 2 0 2 0 0 1 0 1 1 0 0 1 2 1 0 1 [112] 0 1 1 0 0 0 2 2 0 1 1 0 1 0 0 2 1 2 2 1 0 0 1 0 0 0 2 0 2 2 0 0 2 1 1 0 0 [149] 2 0 2 0 1 1 1 1 0 2 1 0 0 2 2 1 1 0 1 2 0 0 0 2 2 1 2 0 2 0 1 1 2 0 2 0 2 [186] 0 0 1 0 0 0 1 2 0 0 2 1 1 2 1 0 1 0 1 1 2 1 0 1 0 0 1 1 0 2 0 1 1 1 2 0 0 [223] 1 0 2 1 2 1 1 2 2 1 2 1 0 1 2 2 0 0 2 1 2 2 2 2 2 1 2 0
找到執行長度
使用 rle 函式查詢向量中值的執行長度:
x<-sample(0:2,250,replace=TRUE) Run_tab<-rle(x) Run_tab
輸出
Run Length Encoding lengths: int [1:175] 1 2 1 1 1 3 3 1 1 1 ... values : int [1:175] 0 2 0 2 1 2 1 0 1 0 ...
建立一個值為 FALSE 的向量
使用 rep 函式建立一個大小與上述向量相同且每個值都為 FALSE 的向量:
x<-sample(0:2,250,replace=TRUE) Run_tab<-rle(x) Length_x<-rep(FALSE,length(x)) Length_x
輸出
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [25] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [37] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [49] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [61] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [73] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [85] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [97] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [109] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [121] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [133] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [145] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [157] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [169] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [181] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [193] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [205] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [217] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [229] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [241] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
使用 TRUE 查詢起始位置
使用 sequence 函式透過將執行長度 2 或更大設定為 TRUE 來查詢起始位置:
x<-sample(0:2,250,replace=TRUE) Run_tab<-rle(x) Length_x<-rep(FALSE,length(x)) Length_x[sequence(Run_tab$lengths)==1]<-Run_tab$lengths>= 2 & Run_tab$values==2 Length_x
輸出
[1] FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE [13] FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE [25] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE TRUE [37] FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE [49] TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE TRUE [61] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [73] TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [85] FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE [97] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [109] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE [121] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE [133] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE [145] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [157] FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE [169] FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [181] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [193] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [205] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [217] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [229] FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE [241] FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP