列中的多重分隔符

问题描述 投票:0回答:1

包含多个答案的结果列,以

','
'/'
分隔。需要计算每个响应的实例。

我想要的最终结果是

我不知道如何拆分第一个表中的答案列。我对字符串分裂感到很糟糕。

我尝试过使用 strsplit 和 str_split 作为数据框的一部分,并将列转换为列表并尝试这种方式,但它很混乱并且不断给我各种错误消息。我很接近

df %>% separate_longer_delim(Answers, delim = ',/')

但是我无法让

delim
部分工作。我可以使用逗号或斜线,但不能同时使用两者。

r string dataframe tidyr delimiter
1个回答
0
投票

separate_longer_delim
的文档中所述:

delim
:默认解释为固定字符串;使用
stringr::regex()
和朋友以其他方式分裂。

library(tidyr)
library(dplyr)

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"))
© www.soinside.com 2019 - 2024. All rights reserved.