R вменение для строк в выбранных столбцах большого набора данных - PullRequest
0 голосов
/ 29 января 2020

Я борюсь с несколькими пакетами импутации данных в R и мне нужен ваш совет.

У меня есть набор данных с 150 000 строк и 270 столбцов.

В каждом столбце отсутствуют некоторые данные , но мне нужно сделать вменение только в 7 из них. Мне нужно, чтобы все столбцы были учтены при заполнении этих 7 столбцов. Нет числовых данных, только строки.

Я пытался использовать MICE, но это занимает слишком много времени и не дает никакого результата из-за перерыва. Я считаю, что кодирую это совершенно неправильно.

A                  |  B          |  C           |  D        |  E       | 
------------------------------------------------------------------------
DEEP DIGGING ALL   |  1989       |  Digging     |  Sumer    |  Cups    |
SURFACE DIGGING    |  1989       |  N/A         |  Sumer    |  Glasses |
CLAIMS OFFSHORE    |  1990       |  N/A         |  Assyria  |  N/A     | 
OFFSHORE CLAIMS    |  1990       |  Offshore    |  Assyria  |  N/A     |  
CLAIMS OFFSHORE    |  1990       |  Offshore    |  Assyria  |  Cups    |
OFFSHORE CLAIMS    |  1990       |  Offshore    |  Assyria  |  Cups    |

Я пытаюсь получить таблицу, в которой столбец "C" вменяется на основе всех столбцов, но не применяется в столбец "E" игнорируются.

Желаемый результат:

A                  |  B          |  C           |  D        |  E       | 
------------------------------------------------------------------------
DEEP DIGGING ALL   |  1989       |  Digging     |  Sumer    |  Cups    |
SURFACE DIGGING    |  1989       |  Digging     |  Sumer    |  Glasses |
CLAIMS OFFSHORE    |  1990       |  Offshore    |  Assyria  |  N/A     | 
OFFSHORE CLAIMS    |  1990       |  Offshore    |  Assyria  |  N/A     |  
CLAIMS ONSHORE     |  1990       |  Offshore    |  Assyria  |  Cups    |
OFFSHORE CLAIMS    |  1990       |  Offshore    |  Assyria  |  Cups    |

Я не уверен, что "MICE" - хороший путь, но я нигде не добился своих попыток в "missForest". Поэтому я очень зависим от вашей помощи.

Заранее большое спасибо!

1 Ответ

1 голос
/ 29 января 2020

Мы можем использовать fill от tidyr

library(dplyr)
library(tidyr)
df1 %>%
   group_by(B) %>%
   fill(C, .direction = 'updown')
...