簡體   English   中英

在R中按元素拆分字符向量?

[英]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.

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