包含多个答案的结果列,以“,”或“/”分隔。需要计算每个响应的实例。
我想要的最终结果是
我不知道如何拆分第一个表中的答案列。我对字符串分裂感到很糟糕。
我尝试过使用 strsplit 和 str_split 作为数据框的一部分,并将列转换为列表并尝试这种方式,但它很混乱并且不断给我各种错误消息。我很接近
df %>% separate_longer_delim(Answers, delim = ',/')
但是我无法让
delim
部分工作。我可以使用逗号或斜线,但不能同时使用两者。
separate_longer_delim
的文档中所述:
:默认解释为固定字符串;使用delim
和朋友以其他方式分裂。stringr::regex()
library(tidyverse)
df %>%
separate_longer_delim(Answers, stringr::regex("[,/]\\s*")) %>%
count(Answers, sort = TRUE)
# Answers n
# 1 cars 2
# 2 dirt 2
# 3 toys 2
# 4 all the things 1
# 5 dolls 1
# 6 trucks 1
df <- data.frame(id = 1:4, Answers = c("toys, dirt", "cars, dolls", "cars/toys/dirt", "all the things, trucks"))