library(tidyverse)
( ex1 <- tibble(
id = 1:7,
brandsliked =c("x,y,z","x,y","z","y,z","a","a,x","b,y")))
# # A tibble: 7 x 2
# id brandsliked
# <int> <chr>
# 1 x,y,z
# 2 x,y
# 3 z
# 4 y,z
# 5 a
# 6 a,x
# 7 b,y
(ex2 <- ex1 %>% separate(col = brandsliked,into=paste0("brnd",1:3),sep = ","))
(ex3 <- pivot_longer(ex2,
cols=c(brnd1:brnd3)))
library(caret)
ex4 <- dummyVars(" ~ value + id", data = ex3)
(ex5 <- data.frame(predict(ex4, newdata = ex3)))
(ex6 <- group_by(ex5,
id) %>% summarise(across(starts_with("value"),max,na.rm=TRUE)))
# # A tibble: 7 x 6
# id valuea valueb valuex valuey valuez
# <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
# 1 0 0 1 1 1
# 2 0 0 1 1 0
# 3 0 0 0 0 1
# 4 0 0 0 1 1
# 5 1 0 0 0 0
# 6 1 0 1 0 0
# 7 0 1 0 1 0