library(tidyverse)
## Loading tidyverse: ggplot2
## Loading tidyverse: tibble
## Loading tidyverse: tidyr
## Loading tidyverse: readr
## Loading tidyverse: purrr
## Loading tidyverse: dplyr
## Conflicts with tidy packages ----------------------------------------------
## filter(): dplyr, stats
## lag(): dplyr, stats
data <- tibble(
a = 1:3,
b = c("1,2", "4,6,8", "4,2,1,9,6,5,2")
)
is_eligible <- function(x) {
grepl("(^|,)9(,|$)", x)
}
data %>%
filter(is_eligible(b)) %>%
select(-b)
## # A tibble: 1 x 1
## a
## <int>
## 1 3
data %>%
mutate(list_of_values = strsplit(b, ",")) %>%
select(-b)
## # A tibble: 3 x 2
## a list_of_values
## <int> <list>
## 1 1 <chr [2]>
## 2 2 <chr [3]>
## 3 3 <chr [7]>
data %>%
mutate(list_of_values = strsplit(b, ",")) %>%
select(-b) %>%
unnest()
## # A tibble: 12 x 2
## a list_of_values
## <int> <chr>
## 1 1 1
## 2 1 2
## 3 2 4
## 4 2 6
## 5 2 8
## 6 3 4
## 7 3 2
## 8 3 1
## 9 3 9
## 10 3 6
## 11 3 5
## 12 3 2
nested_unnested <-
data %>%
mutate(list_of_values = strsplit(b, ",")) %>%
select(-b) %>%
unnest() %>%
nest(-a)
nested_unnested$data
## [[1]]
## # A tibble: 2 x 1
## list_of_values
## <chr>
## 1 1
## 2 2
##
## [[2]]
## # A tibble: 3 x 1
## list_of_values
## <chr>
## 1 4
## 2 6
## 3 8
##
## [[3]]
## # A tibble: 7 x 1
## list_of_values
## <chr>
## 1 4
## 2 2
## 3 1
## 4 9
## 5 6
## 6 5
## 7 2
nested_unnested$data[[1]]
## # A tibble: 2 x 1
## list_of_values
## <chr>
## 1 1
## 2 2
Copyright © 2017 Kirill Müller. Licensed under CC BY-NC 4.0.