''当遇到空值时,如何将以下向量拆分为包含每个新元素的列表?
例如给定以下输入 -
x <- c("abc", "", "a", "b", "c", "", "ab", "ac", "", "a", "a", "a",
"a", "", "b")
x
[1] "abc" "" "a" "b" "c" "" "ab" "ac" "" "a" "a" "a" "a" "" "b"
Run Code Online (Sandbox Code Playgroud)
我想要以下列表作为输出
list("abc", c("a", "b", "c"), c("ab", "ac"), c("a", "a", "a",
"a"), "b")
[[1]]
[1] "abc"
[[2]]
[1] "a" "b" "c"
[[3]]
[1] "ab" "ac"
[[4]]
[1] "a" "a" "a" "a"
[[5]]
[1] "b"
Run Code Online (Sandbox Code Playgroud)
根据空白元素(i1)创建逻辑向量,获取逻辑向量的累积和以创建用于split向量子集(即没有空白)的组
i1 <- !nzchar(x)
unname(split(x[!i1], cumsum(i1)[!i1]))
Run Code Online (Sandbox Code Playgroud)
-输出
[[1]]
[1] "abc"
[[2]]
[1] "a" "b" "c"
[[3]]
[1] "ab" "ac"
[[4]]
[1] "a" "a" "a" "a"
[[5]]
[1] "b"
Run Code Online (Sandbox Code Playgroud)