Как рассчитать пропущенное значение со значением столбца, используя sparklyr, для выбранных столбцов? - PullRequest
0 голосов
/ 06 июня 2018

Для фреймов данных Spark в sparklyr я знаю, что NA может быть вменено фиксированным числом, используя na.replace(number), также я знаю, что могу сделать na.replace(x=something) для жестко закодированного столбца.

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

Я рассмотрел spark_apply, чтобы применить к нему mice, но пока не нашел решения.

Спасибо!

1 Ответ

0 голосов
/ 06 июня 2018

Вы можете использовать Imputer.Допустим, данные выглядят так:

df <- copy_to(sc, tibble(id=1:3, x=c(1, NA, 3), y=c(NA, 2, -1)))

Для преобразователя требуются списки входных и выходных столбцов:

input_cols <- c("x", "y")
output_cols <- paste0(input_cols, "_imp")

и их можно применять, как показано ниже:

df %>% 
  ft_imputer(input_cols=input_cols, output_cols=output_cols, strategy="mean")
# Source:   table<sparklyr_tmp_73a32e74369c> [?? x 5]
# Database: spark_connection
     id     x     y x_imp y_imp
  <int> <dbl> <dbl> <dbl> <dbl>
1     1     1   NaN     1   0.5
2     2   NaN     2     2   2  
3     3     3    -1     3  -1  
...