''無論遇到空值,如何拆分以下向量以列出每個新元素?
例如給定以下輸入-
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"
我想要以下串列作為輸出
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"
uj5u.com熱心網友回復:
根據空白元素創建一個邏輯i1向量split(
i1 <- !nzchar(x)
unname(split(x[!i1], cumsum(i1)[!i1]))
-輸出
[[1]]
[1] "abc"
[[2]]
[1] "a" "b" "c"
[[3]]
[1] "ab" "ac"
[[4]]
[1] "a" "a" "a" "a"
[[5]]
[1] "b"
uj5u.com熱心網友回復:
更新 akrun 的寶貴提示:
library(dplyr)
library(tibble)
as_tibble(x) %>%
mutate(value = na_if(value, '')) %>%
group_by(id_Group =cumsum(is.na(value)) 1) %>%
na.omit() %>%
summarise(value1 =list(value)) %>%
pull(value1)
[[1]]
[1] "abc"
[[2]]
[1] "a" "b" "c"
[[3]]
[1] "ab" "ac"
[[4]]
[1] "a" "a" "a" "a"
[[5]]
[1] "b"
第一個答案: 這是另一種方法:
library(dplyr)
library(tibble)
as_tibble(x) %>%
mutate(value = na_if(value, '')) %>%
group_by(id_Group =cumsum(is.na(value)) 1) %>%
na.omit() %>%
summarise(value1 = paste(value, collapse = " ")) %>%
pull(value1) %>%
as.list(value1)
[[1]]
[1] "abc"
[[2]]
[1] "a b c"
[[3]]
[1] "ab ac"
[[4]]
[1] "a a a a"
[[5]]
[1] "b"
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/425633.html
上一篇:通過保持串列格式對串列進行子集化
