У меня есть данные, которые выглядят следующим образом:
library(tidyverse)
library(stringr)
data <- tibble(cats = c("a", "a|b |c", " b", "b| c"))
Я хочу преобразовать этот столбец в список, чтобы я мог его развернуть, а затем суммировать, чтобы получить значения для каждой категории.
Это то, что я хочу сделать, но это не работает:
data %>%
str_split(cats, "\\|") %>%
unnest() %>%
str_trim(cats) %>%
count(cats)
Насколько я понимаю из чтения сообщений об ошибках, это проблематично, поскольку str_split
создает список списков.а не новый data.frame
/ tibble
.
Итак, я сделал это, и я получил желаемый результат:
data <- tibble(cats = str_split(data$cats, "\\|")) %>%
unnest()
data <- tibble(cats = str_trim(data$cats)) %>%
count(cats)
data
# A tibble: 3 x 2
cats n
<chr> <int>
1 a 2
2 b 3
3 c 2
На данный момент я готов двигатьсяна, но я хотел бы получить некоторое представление о том, что я делаю неправильно в трубе.