У меня есть данные опроса. Некоторые вопросы допускали несколько ответов. В моих данных разные ответы разделены запятой. Я хочу добавить новую строку в кадр данных для каждого выбора. Итак, у меня есть что-то вроде этого:
survey$q1 <- c("I like this", "I like that", "I like this, but not much",
"I like that, but not much", "I like this,I like that",
"I like this, but not much,I like that")
Если бы запятые были только там, чтобы разделить несколько вариантов, которые я бы использовал:
survey <- cSplit(survey, "q1", ",", direction = "long")
и получить желаемый результат. Учитывая, что некоторые запятые являются частью ответа, я попытался использовать запятую, за которой следует заглавная буква, в качестве разделителя:
survey <- cSplit(survey, "q1", ",(?=[A-Z])", direction = "long")
Но почему-то не работает. Это не дает никаких ошибок, но не разбивает строки, а также удаляет некоторые строки из фрейма данных. Затем я попытался использовать strsplit:
strsplit(survey$1, ",(?=[A-Z])", perl=T)
который работает при его правильном разделении, но я не могу реализовать его так, чтобы каждое предложение становилось отдельной строкой одного и того же столбца, как это делает cSplit. Требуемый результат:
survey$q1
[1] "I like this"
[2] "I like that"
[3] "I like this, but not much"
[4] "I like that, but not much"
[5] "I like this"
[6] "I like that"
[7] "I like this, but not much"
[8] "I like that"
Есть ли способ получить его одним из двух способов? Спасибо