r - 按 R 中的元素拆分字符向量?

标签 r string vector split

给定一个向量:

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 变为 FALSE,FALSE -> TRUE。

v1[!i1]
#[1] "kuku" "pupu" "lilu" "ff"   "rrrr" "rrr" 

同样,'grp' 也被子集化,因为我们希望两个向量具有相同的长度并进行拆分

split(v1[!i1], grp[!i1])
#$`0`
#[1] "kuku" "pupu" "lilu"

#$`1`
#[1] "ff"   "rrrr"

#$`2`
#[1] "rrr"

关于r - 按 R 中的元素拆分字符向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55783186/

相关文章:

algorithm - 检查线段是否与从特定点绘制的垂直线相交?

r - 合并两个具有非唯一键的数据框

r - ggplot2:x 轴刻度之间的条形图

Java/Spring - 保护参数(路径变量)

连接 C ansi 中的任何内容

C++ 比较 vector 迭代器与实例

r - Google Maps Platform 最多 60 个结果限制的解决方法

r - 在 grid.arrange 的左上角找到标题

java - 如何将字符串拆分为数组,其中分隔符也是一个标记?

c++ - 我可以创建具有指定长度但没有初始化的 C++ 字符串/vector 吗?