Ste*_*veS 3 string split r vector
Given a vector:
c("kuku", "pupu", "lilu","","ff","rrrr", "", "rrr")
Run Code Online (Sandbox Code Playgroud)
How can I split it by ""
?
To get 3 vectors:
c("kuku", "pupu", "lilu")
c("ff","rrrr")
c("rrr")
Run Code Online (Sandbox Code Playgroud)
我们可以获取逻辑向量的累加总和,以创建用于 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
Run Code Online (Sandbox Code Playgroud)
请注意,对于累计和,它在每个TRUE值处加1。然后,我们对向量做一个子集,不包含""
。取反(!
),则TRUE beomes为FALSE和FALSE-> TRUE。
v1[!i1]
#[1] "kuku" "pupu" "lilu" "ff" "rrrr" "rrr"
Run Code Online (Sandbox Code Playgroud)
同样,“ grp”也是子集,因为我们希望两个向量都具有相同的长度并执行 split
split(v1[!i1], grp[!i1])
#$`0`
#[1] "kuku" "pupu" "lilu"
#$`1`
#[1] "ff" "rrrr"
#$`2`
#[1] "rrr"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
41 次 |
最近记录: |