Включить NA при использовании group_by в dplyr - PullRequest
0 голосов
/ 15 октября 2018

Я использую dplyr для обобщения некоторых данных и группирую их по двум факторам.Проблема заключается не в том, что все уровни второго фактора включены в первый фактор, и мой фрейм данных не показывает случаев, когда нет результата.

Я хочу включить инструкцию na.rm = FALSE (я думаю), но это не работает.

Я также пытался использовать функцию mutate, чтобы включить все уровни фактора, ноон тоже не работает

Вот мой код с включенным mutate

Dataframe <- UKData %>%
  filter(!is.na(REGION))%>%
  group_by(REGION,EMPSIZE) %>%
  summarise(NumberofEmployers=length(Employers)) %>%
  mutate(EMPSIZE =  factor(EMPSIZE, levels = z)) %>%
  arrange(REGION,EMPSIZE) 

Так что проблема в том, что не в каждом регионе есть работодатели всех размеров.Размер группы работодателя содержит 7 уровней.Я хочу, чтобы таблица показывала НС, где у Региона нет определенного размера полосы.Возможно ли это?

ОБНОВЛЕНИЕ,

Таким образом, данные будут выглядеть примерно так:

Employers     REGION    EMPSIZE
Number 1    Scotland    1-4
Number 2    Scotland    5-49
Number 3    Scotland    50-499
Number 4    Scotland    500-999
Number 5    Scotland    1000-4999
Number 6    Scotland    5000+
Number 7    Scotland    50-499
Number 8    North West  5-49
Number 9    North West  1000-4999
Number 10   Yorkshire   5000+
Number 11   Yorkshire   50-499
Number 12   Yorkshire   5-49
Number 13   London      1-4
Number 14   London      5-49
Number 15   London      50-499
Number 16   London      500-999
Number 17   London      1000-4999
Number 18   London      5000+
Number 19   East        50-499
Number 20   East        1000-4999

Итак, только в Шотландии и Лондоне есть все 6 возможных диапазонов размеров,других регионов нет.Таким образом, таблица, которую я хочу, должна выглядеть следующим образом:

REGION    EMPSIZE       number
Scotland    1-4             1
Scotland    5-49            1
Scotland    50-499          2
Scotland    500-999         1
Scotland    1000-4999       1
Scotland    5000+           1
North West  1-4             NA
North West  5-49            1
North West  50-499          NA
North West  500-999         NA
North West  1000-4999       1
North West  5000+           NA
Yorkshire   1-4             NA
Yorkshire   5-49            1
Yorkshire   50-499          1
Yorkshire   500-999         NA
Yorkshire   1000-4999       NA
Yorkshire   5000+           1
London      1-4             1
London      5-49            1
London      50-499          1
London      500-999         1
London      1000-4999       1
London      5000+           1
East        1-4             NA
East        5-49            NA
East        50-499          1
East        500-999         NA
East        1000-4999       1
East        5000+           NA

Оглядываясь назад, возможно, мне все равно, являются ли они NA или фактически 0 - я действительно хочу уровень, показанный в таблице, хотя

1 Ответ

0 голосов
/ 15 октября 2018

Если у них нет EmpSize, почему вы хотите включить его в свой фрейм данных?Если бы я был на вашем месте, я бы сохранил строки с пропущенными данными, так как NA просто затрудняют чтение таблицы.Вы не «теряете» какую-либо информацию, удаляя пропущенные значения, если ваша цель - отобразить EmpSize.Во всяком случае, труднее читать, если держать НС в таблице.(Также 0 - это не то же самое, что NA, поэтому не стоит заменять NA на 0).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...