Как я могу применить str_split к столбцу с одним символьным столбцом? - PullRequest
0 голосов
/ 05 марта 2020

Предположим, у меня есть объект tibble с одним столбцом символов; и я хочу преобразовать в target с помощью функции str_split. Я не могу преуспеть в этом. Любые предложения для этого?

> as_tibble(c("sdsd/ffg","fdfd/rrrr/rrr","dfd/ww/rrr/ww"))%>%str_split("/")
[[1]]
[1] "c(\"sdsd"      "ffg\", \"fdfd" "rrrr"          "rrr\", \"dfd"  "ww"           
[6] "rrr"           "ww\")"        

Warning message:
In stri_split_regex(string, pattern, n = n, simplify = simplify,  :
  argument is not an atomic vector; coercing
> target <- str_split(c("sdsd/ffg","fdfd/rrrr/rrr","dfd/ww/rrr/ww"),"/")
> target
[[1]]
[1] "sdsd" "ffg" 

[[2]]
[1] "fdfd" "rrrr" "rrr" 

[[3]]
[1] "dfd" "ww"  "rrr" "ww" 

Ответы [ 2 ]

1 голос
/ 05 марта 2020

Вы можете pull столбец, чтобы получить его как вектор, а затем применить str_split

tibble::as_tibble(c("sdsd/ffg","fdfd/rrrr/rrr","dfd/ww/rrr/ww")) %>% 
    dplyr::pull(value) %>%
    stringr::str_split("/")

#[[1]]
#[1] "sdsd" "ffg" 

#[[2]]
#[1] "fdfd" "rrrr" "rrr" 

#[[3]]
#[1] "dfd" "ww"  "rrr" "ww" 
0 голосов
/ 05 марта 2020

Мы можем сделать str_split внутри mutate, который возвращает столбец list и затем может быть извлечен с помощью value

library(dplyr)
library(stringr)
as_tibble(c("sdsd/ffg","fdfd/rrrr/rrr","dfd/ww/rrr/ww")) %>%
    mutate(value = str_split(value, "/")) %>%
    pull(value)
#[[1]]
#[1] "sdsd" "ffg" 

#[[2]]
#[1] "fdfd" "rrrr" "rrr" 

#[[3]]
#[1] "dfd" "ww"  "rrr" "ww" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...