[英]Split character vector by element in R?
給定一個向量:
c("kuku", "pupu", "lilu","","ff","rrrr", "", "rrr")
如何用""
分割?
要獲得3個向量:
c("kuku", "pupu", "lilu")
c("ff","rrrr")
c("rrr")
我們可以得到邏輯向量的累積和創造分組指數split
i1 <- v1 == ""
i1
#[1] FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE
grp <- cumsum(i1)
grp
#[1] 0 0 0 1 1 1 2 2
請注意,對於累計和,它在每個TRUE值處加1。 然后,我們對向量進行子集處理以不包含""
。 否定( !
),則TRUE beomes為FALSE和FALSE-> TRUE。
v1[!i1]
#[1] "kuku" "pupu" "lilu" "ff" "rrrr" "rrr"
同樣,由於我們希望兩個向量的長度相同並進行split
,因此也將“ grp”作為子集
split(v1[!i1], grp[!i1])
#$`0`
#[1] "kuku" "pupu" "lilu"
#$`1`
#[1] "ff" "rrrr"
#$`2`
#[1] "rrr"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.