Я пытаюсь очистить некоторые данные, которые были введены неправильно. Вопрос о переменной допускает несколько ответов из пяти вариантов, пронумерованных от 1 до 5. Данные были введены следующим образом (это всего лишь пример --есть много других переменных и гораздо больше наблюдений в фактический фрейм данных):
data
V1
1 1, 2, 3
2 1, 2, 4
3 2, 3, 4, 5
4 1, 3, 4
5 1, 3, 5
6 2, 3, 4, 5
Вот некоторый код для воссоздания этого примера данных:
data = data.frame(V1 = c("1, 2, 3", "1, 2, 4", "2, 3, 4, 5",
"1, 3, 4", "1, 3, 5", "2, 3, 4, 5"))
Что мне действительно нужно, так это данные, которые нужно обрабатывать более... бинарно --как набор вопросов «да/нет» --введен во фрейме данных, который больше похож на:
data
V1.1 V1.2 V1.3 V1.4 V1.5
1 1 1 1 NA NA
2 1 1 NA 1 NA
3 NA 1 1 1 1
4 1 NA 1 1 NA
5 1 NA 1 NA 1
6 NA 1 1 1 1
Фактические имена переменных в данный момент не имеют значения --Я могу легко это исправить. Кроме того, не имеет большого значения, являются ли отсутствующие элементы «O», «NA» или снова пустыми --, это то, что я могу исправить позже.
Я пытался использовать функцию transform
из пакета reshape
, а также различные вещи с strsplit
, но я не могу заставить ни то, ни другое сделать то, что я ищу. Я также просмотрел множество других связанных вопросов в Stackoverflow, но они, похоже, не совсем та же проблема.