R: Как манипулировать данными (Dataframe со значениями NA и вмененной матрицей с несколькими результатами итераций)? - PullRequest
0 голосов
/ 21 января 2019

У меня есть данные. Кадр df_final с 2 столбцами:

day_of_year (365 последовательных целых чисел: 1,2,3, .... 365)

bookings (279 целочисленных значений и 86 NA значений для отсутствующих данных)

вот пример df_final

     day_of_year  bookings
1       1           43
2       2           27
3       3           NA
4       4           27
.
.
10      10          NA
11      11          31
.
.
365     365         60

Я использовал пакет Hmisc в R для вменения отсутствующихзначения с 5 итерациями.

library (Hmisc)

impute_arg <- aregImpute(~ day_of_year + bookings, data = df_final, n.impute = 5)
impute_arg
bookings_imp_2 <- impute_arg$imputed$bookings

Найдите часть результата bookings_imp_2

enter image description here

enter image description here

enter image description here

Есть 5 итераций для каждого пропущенного значения.

Моя цель - взять pooled versionиз вмененных значений (может принимать среднее из 5 значений) и замените NA values in df_final этими значениями.

Я создал объединенный набор данных, используя

df_imputed <- data.frame("bookings_imputed" = bookings_imp_2)
df_imputed$pooled <- rowMeans(df_imputed, na.rm = TRUE)

У меня естьвывод, подобный этому

enter image description here

Единственное, что остается сделать, это заменить значения NA в df_final объединенными значениями.Вот где я немного застрял.

1 Ответ

0 голосов
/ 21 января 2019

Если порядок строк не изменился, это может сработать.

df_final$bookings[is.na(df_final$bookings)] <- df_imputed$pooled

Cheers, Rico

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