Попытка удалить строки с NA, чтобы я мог выполнить анализ хи-квадрат

сообщество Р.

Я пытаюсь удалить строки ВРЕМЕННО, содержащие NA, чтобы провести анализ хи-квадрат своих данных. В противном случае, когда я выбираю две переменные для создания таблицы данных, будет столбец с названием «неизвестно», и это будет мешать анализу хи-квадрат из того, что я знаю.

Строки соответствуют каждому пациенту в данных. mint$bp_type2 и mint$menopause — две колонки. Моя мысль состояла в том, чтобы заменить NA случайным числом; Я выбрал 20. Таким образом, я смогу удалить эти строки со значением 20 в этом столбце.

Вот код:

mint <- mint[!(mint$bp_type2 == 20),]
mint$menopause[is.na(mint$menopause)] <- 20
mint <- mint[!(mint$menopause == 20),]
table(mint$bp_type2,mint$menopause)
chisq.test(mint$bp_type2,mint$menopause)

Это мое сообщение об ошибке:

> mint$bp_type2[is.na(mint$bp_type2)] <- 20
Warning message:
In `[<-.factor`(`*tmp*`, is.na(mint$bp_type2), value = c(1L, 4L,  :
  invalid factor level, NA generated

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

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

Спасибо!!


person Brian    schedule 24.06.2020    source источник
comment
вы можете удалить столбцы NA с помощью na.omit(), возможно, это вам поможет.   -  person mischva11    schedule 25.06.2020
comment
Почему вы хотите заменить значение на 20, если вы можете удалить его напрямую?   -  person Ronak Shah    schedule 25.06.2020


Ответы (2)


Сообщение об ошибке связано с тем, что столбец «bp_type2» имеет значение factor, а «20» не является одним из levels этого столбца. Мы можем либо преобразовать в character, либо создать '20' как один из levels

levels(mint$bp_type2) <- c(levels(mint$bp_type2), '20')

а потом выполнить задание

mint$bp_type2[is.na(mint$bp_type2)] <- '20'

С forcats fct_expand может добавить больше уровней

library(forcats)
mint$bp_type2 <- fct_expand(mint$bp_type2, '20')
person akrun    schedule 24.06.2020

Пытаться :

chisq.test(na.omit(df$columnName))

Это позволит исключить NA при выполнении теста хи-квадрат.

person sharmajee499    schedule 24.06.2020