Уровни сплит-факторов - PullRequest
0 голосов
/ 23 мая 2018

Это, казалось бы, простой вопрос, на который я не могу найти ответ.

У меня есть фрейм данных

df <- data.frame(respondent = factor(c(1, 2, 3, 4, 5, 6)), language = factor(c("English", "English", "French", "French, German", "German", "German")))

Названия уровней факторов отражают ответы на опросы.Большинство респондентов говорят на одном языке, но некоторые говорят по-французски и по-немецки.Я хотел бы разделить уровень «французский, немецкий» на два.

Как это можно сделать?

1 Ответ

0 голосов
/ 23 мая 2018

Мы можем использовать separate_rows из tidyr, затем использовать mutate для преобразования language обратно в factor.Результирующий столбец language будет коэффициентом с уровнем для каждого отдельного языка:

library(dplyr)
library(tidyr)

df = df %>%
  separate_rows(language) %>%
  mutate(language = factor(language))

Результат:

  respondent language
1          1  English
2          2  English
3          3   French
4          4   French
5          4   German
6          5   German
7          6   German

> df$language
[1] English English French  French  German  German  German 
Levels: English French German
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...