R: ошибки в cor () и corrplot ()

Еще один камень преткновения. У меня есть большой набор данных (называемый «ярко») примерно с 180 тыс. Строк и 165 столбцов. Я пытаюсь создать корреляционную матрицу этих столбцов в R.

Возникло несколько проблем, ни одну из которых я не могу решить с помощью предложений, предложенных на этом и других сайтах.

Во-первых, как я создал набор данных: я сохранил его как файл CSV из Excel. Я понимаю, что CSV должен удалить любое форматирование, так что все, что является числом, должно читаться как число R. Я загрузил его с помощью

brightly = read.csv ("brightly.csv", header = TRUE)

Но я продолжал получать сообщения об ошибках «x должен быть числовым» каждый раз, когда я запускал cor (ярко), поэтому я заменил все NA на 0. (Это может изменить мои данные, но я думаю, что все будет в порядке - все, что «NA», фактически равно 0, либо для непрерывных, либо для фиктивных переменных.)

Теперь я больше не получаю сообщение об ошибке с текстом. Но каждый раз, когда я запускаю cor () - либо для всех переменных одновременно, либо для комбинаций переменных, я получаю «Предупреждающее сообщение: In cor (ярко $ PPV, ярко, use =" complete "): стандартное отклонение составляет нуль"

У меня также есть некоторые корреляции этой одной переменной с другими, которые отображаются как «NA». Я убедился, что ни одна ячейка в данных не имеет значения «NA», поэтому я не знаю, почему я получаю значения «NA» для корреляций.

Я также попробовал оба из следующих вариантов, чтобы ДЕЙСТВИТЕЛЬНО убедиться, что я не включил никаких значений NA:

cor (ярко $ PPV, ярко, use = "pairwise.complete.obs")

а также

cor (ярко $ PPV, ярко, use = "complete")

Но я все еще получаю предупреждения о том, что SD равняется нулю, и я все еще получаю NA.

Есть какие-нибудь идеи относительно того, почему это может происходить?

Наконец, когда я пытаюсь выполнить corrplot, чтобы показать результаты корреляций, я делаю следующее:

brightly2 ‹- cor (ярко) Предупреждение: In cor (ярко): стандартное отклонение равно нулю corrplot (brightly2, method =" number ") Ошибка в if (min (corr)‹ -1 - .Machine $ double.eps | | max (corr)> 1 + .Machine $ double.eps) {: отсутствует значение, где требуется ИСТИНА / ЛОЖЬ

И вместо того, чтобы делать свою красивую матрицу корреляции с цветовой кодировкой, я получаю вот это. Мне еще предстоит найти объяснение того, что это значит.

Любая помощь будет ОЧЕНЬ признательна! Спасибо большое!!


person mclyne    schedule 14.04.2016    source источник
comment
прочтите свои данные как brightly и вставьте в свой вопрос результат str(brightly), как с НА, так и без.   -  person jeremycg    schedule 15.04.2016
comment
Просто чтобы прояснить - везде, где у меня ярко показано выше, вы хотите, чтобы я вместо этого использовал str (ярко), запускал тот же код в R и вставлял вывод сюда? Определенно могу, просто хочу убедиться, что поступаю правильно. Спасибо!   -  person mclyne    schedule 15.04.2016
comment
Я предлагаю вам открыть файл csv в блокноте и посмотреть на столбцы с числами. В столбцах есть числа с запятыми?   -  person chinsoon12    schedule 15.04.2016


Ответы (1)


Пожалуйста, проверьте, заменили ли вы свои NA на 0 или '0', так как один является символом, а другой - int. Или вы даже можете попробовать использовать функцию as.numeric(column_name) для преобразования ваших char 0s в int 0. Также эта ошибка возникает, если в вашем наборе данных есть факторы, потому что это не значения int, corrplot выдает эту ошибку. Было бы полезно, если бы вы поместили образец своих данных в вопрос, используя

str(head(your_dataset))

Это было бы полезно для вас проверить типы данных столбцов. Сообщите мне, если я ошибаюсь. Cheerio.

person Mighty God Loki    schedule 17.02.2018