GGally::ggpairs ведет себя по-разному для разных переменных при работе с NA.

У меня есть набор данных, который я загружаю с помощью readr, который имеет 2341 строку, 401 столбец и несколько добавленных NA. Я пытаюсь создать матрицы диаграммы рассеяния с подвыборкой непрерывных переменных.

Вот glimpse некоторых переменных, которые я использую:

Observations: 2,341
Variables: 3
$ Height <dbl> 175.2000, 175.0000, 174.7000, 174.0000, 173.0000, ...
$ gender <fct> Male, Male, Male, Male, Male, Male, Male, Male, Male, ...
$ lb_pp  <dbl> 55.00000, 50.00000, 40.00000, 56.00000,  60.00000, ...

Переменные Height, lb_pp и gender имеют 98, 150 и 0 NA соответственно.

Большинство переменных ведут себя хорошо и отображаются на графике как обычно. ggpairs выдает предупреждение, когда я использую переменную со 150 NA (предупреждающее сообщение ниже), но я получаю график без проблем, как показано ниже:

Warning message:
“Removed 150 rows containing non-finite values (stat_boxplot).”`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Warning message:
“Removed 150 rows containing non-finite values (stat_bin).”Warning message:
“Removed 150 rows containing non-finite values (stat_density).”

Пример изображения с использованием переменной с NA, которая дает ожидаемый результат

Но когда я использую другую переменную height, она задыхается с другим предупреждающим сообщением и испорченным графиком:

Warning message:
“Removed 98 rows containing non-finite values (stat_count).
”Warning message:
“Computation failed in `stat_count()`:
arguments imply differing number of rows: 392, 400, 1
”Warning message:
“Computation failed in `stat_count()`:
arguments imply differing number of rows: 542, 574, 1
”Warning message:
“Removed 98 rows containing non-finite values (stat_count).”Warning message:
“Computation failed in `stat_count()`:
arguments imply differing number of rows: 392, 400, 1”

Пример изображения с использованием переменной с NA, которая дает неожиданный результат

Я могу обойти эту проблему, отфильтровав строки с NA для проблемных переменных, но почему я должен делать это для одних переменных, а не для других? Обе переменные возвращают TRUE, когда я задаю is.numeric. Какая разница?

Спасибо за вашу помощь.


person blahblahetcetc    schedule 06.09.2018    source источник
comment
Пожалуйста, не могли бы вы сделать воспроизводимый пример либо с подмножеством ваших данных, либо с некоторыми смоделированными данными.   -  person Richard Telford    schedule 06.09.2018
comment
Вероятно, лучше опубликовать здесь github.com/ggobi/ggally/issues   -  person Jack Brookes    schedule 06.09.2018


Ответы (1)


Отвечая на мой собственный вопрос здесь, оказывается, что моя надоедливая переменная height, которая вызвала ошибку, была не атомарным вектором, а скорее матрицей n x 1. Досадно, что встроенная функция R scale молча вернула в моем случае. Недавнее изменение в функции glimpse Tidyverse теперь показывает размеры матрицы в выходных данных, а не выборку значений, как я заметил ошибку.

person blahblahetcetc    schedule 11.03.2019