Необходимо подсчитать NA (отсутствующие значения) для одной переменной, сгруппированные по другой переменной - PullRequest
0 голосов
/ 28 апреля 2019

Я очень плохо знаком с R, но мне очень интересно учиться.

Так что я много искал, и хотя было много постов, посвященных проблеме подсчета пропущенных значений в нескольких столбцах с использованием

na_count <-sapply(data, function(y) sum(length(which(is.na(y)))))
na_count <- data.frame(na_count)

но не смог найти конкретный ответ на мою проблему.

У меня есть набор данных, в котором есть столбец с именем разновидности и другой столбец с именем вес, в котором есть некоторые пропущенные значения.

Мне нужно найти пропущенные значения в «весе», сгруппированном по видам. Мне нужно использовать group_by и суммировать.

Одна из ошибок, которые я получаю, это

Коэффициент species содержит неявный NA, рассмотрите возможность использования forcats::fct_explicit_na

Я думаю, что это связано с тем фактом, что столбец, сгруппированный по '(видам), также имеет NA.

Я пытался

DF %>% 
  group_by(species) %>% 
  summarize(funs(sum(is.na(weight))))

Это не работает, хотя.

Наконец, мне нужно вписать средний вес каждого вида в пропущенные значения.

Приветствия

1 Ответ

1 голос
/ 28 апреля 2019

Вот гипотетический фрейм данных:

df = data_frame(species = sample(c("dogs", "cats", "horses"), 100, replace = T) ,
weight = sample(seq(100, 200), 100))

Давайте положим туда несколько АН:

df[sample(seq(1:100), 30), 2] = NA

Подсчет NA:

df %>% group_by(species) %>% summarise(NA_sum = sum(is.na(weight)))

И ваш окончательный ответ:

df %>% group_by(species) %>% 
mutate(weight = ifelse(is.na(weight), mean(weight, na.rm = T), weight))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...