#r #dataframe #dataset #missing-data
#r #фрейм данных #набор данных #отсутствует-данные
Вопрос:
Я искал, как заменить в моем наборе данных отсутствующие значения, которые отсортированы по «неизвестным». все неизвестные значения находятся в столбцах факторов.. например, у меня есть семейное положение с атрибутами женат, разведен и неизвестен.. Я ищу способ, как заменить «неизвестный», чтобы не удалять .. другие факторы только да, нет, неизвестны.
bank$marital <- factor(c('married','divorced','married','unknown','single'))
я хочу только заменить «unknown», например, на «single»
bank$marital = bank$marital.fillna(bank$marital.mode[yes],inplace = True)
bank$marital[is.na(bank$marital)]<-mean(bank$marital,na.rm=TRUE)
Я не могу использовать mean, потому что его factor …
Но я не смог найти правильный способ замены «неизвестных» значений в факторах
Комментарии:
1. Очевидно, что нет среднего значения c («женат», «разведен», «женат», «неизвестен», «холост»). Вы должны выбрать, на какое значение вы хотели бы заменить NA. Я предполагаю, что «неизвестный» был бы правильным выбором. Итак
bank$marital[is.na(bank$marital)] <- "unknown")
?2. У меня нет значений NA.. Значения NA сохраняются как «неизвестные», и мне нужно заменить «неизвестные» значения, например, на «x»
Ответ №1:
Это?
Смотрите здесь .
bank <- data.frame(marital = as.factor(c('married','divorced','married','unknown','single')))
levels(bank$marital) <- c(levels(bank$marital), "x") # add new level
bank$marital[ bank$marital == "unknown" ] <- "x"
bank$marital
#> [1] married divorced married x single
#> Levels: divorced married single unknown x
Создано 2021-01-29 пакетом reprex (версия 0.3.0)
Комментарии:
1. Да, это. Спасибо
2. Существует ли какая-либо функция, подобная «среднему» в числовых атрибутах, которая могла бы помочь разделить «неизвестные» значения на женатые, разведенные, одинокие?
3. Я думаю, вам нужно будет сделать это «вручную» либо путем случайного присвоения одного из этих значений, либо путем определения количества значений для замены, а затем выбора «правильного» распределения.
Ответ №2:
Вы имеете в виду что-то вроде приведенного ниже?
f <- type.convert(f, as.is = TRUE)
replace(f,is.na(f),mean(f,na.rm = TRUE))
# [1] 1.000 2.775 4.000 3.000 3.100 2.775
Фиктивные данные
f <- factor(c(1,NA,4,3,3.1,NA))
Комментарии:
1. Я не могу опубликовать фотографию, но. ctrlv.link/dlhO это то, какие значения находятся, например, в столбце о браке. значения NA нет, потому что оно отсортировано по неизвестному значению. И я хочу заменить «неизвестное» значение, например, на «женатый»