Контекст
В моем фрейме данных у меня есть столбец, содержащий фиксированные ответы на вопрос об альтернативах потреблению в ресторане. При необходимости респонденты могут выбрать несколько вариантов одновременно.
Вот 9 уникальных вариантов ответа, доступных респондентам на этот вопрос:
#Unique responses to question
unique_vector = c('Bring food from home',
'Buy from a supermarket',
'Buy from deli, bakery, coffee, or sandwich shop',
'Go home',
'Go out to a fast food outlet',
'Order food from outside',
'Snack between meals',
'Go out to a full service restaurant',
'Skip the meal')
После проведения опроса 10 респондентов результирующий кадр данных выглядит следующим образом:
#Survey Dataframe
df= data.frame(
Id = c(1:10),
QUESTION=c(unique_vector[1],
paste0(unique_vector[1],',',unique_vector[2]),
paste0(unique_vector[1],',',unique_vector[2],',',unique_vector[2]),
paste0(unique_vector[4],',',unique_vector[5],',',unique_vector[1]),
paste0(unique_vector[3],',',unique_vector[1],',',unique_vector[9],',',unique_vector[7]),
paste0(unique_vector[5],',',unique_vector[6],',',unique_vector[8],',',unique_vector[1]),
unique_vector[3],
"",
paste0(unique_vector[5],',',unique_vector[6],',',unique_vector[8],',',unique_vector[1]),
"")
)
Моя цель
Я хотел бы распределить столбец QUESTION
таким образом, чтобы каждый уникальный ответ представлял собой отдельный столбец в фрейме данных.
Затем я хотел бы закодировать эти ответы так, чтобы они записывались как 1 (и никакие ответы не записывались как 0).
Моя попытка
Я пытался использовать пакет однократного кодирования в R. Но я не могу понять, как изменить свой код для разделения объединенных ответов.
#Attempt
library(onehot)
encoded_df = onehot(df[,2], stringsAsFactors=TRUE)
Любой вклад здесь будет принят с благодарностью.