#r #r-corrplot
#r #r-corrplot
Вопрос:
Ранее я создал красивый функциональный и совершенный фактический график корреляции с corrplot (мой график). Теперь я должен получить базовые данные в том же виде. Итак, моя цель — иметь треугольные матрицы подобия тех же цветов, что и мой график корреляции. Представьте это как условное форматирование в Excel.
Мои данные: мои данные из Excel
он загружается как csv и может отлично считывать csv
Мой код: corrplot(Phylogeny, is.corr=FALSE,method="number", cl.lim=c(0,1))
Ошибка, которую он выдает мне: Error in if (any(corr < cl.lim[1]) || any(corr > cl.lim[2])) { : Missing value, where TRUE/FALSE is required
- я убедился, что все столбцы являются числовыми
- я позаботился о том, чтобы заполнить недостающие биты NA (потому что раньше это было проблемой)
- я убедился, что все мои значения находятся в диапазоне от 0 до 1, как я хочу, чтобы предел был (между ними он сказал мне, что мои значения не находятся в пределах предела, когда я попробовал с некоторыми вещами)
- ошибка не изменяется при изменении предела
- ошибка не изменяется, когда я извлекаю is.corr= FALSE (по умолчанию = TRUE)
- я поиграл с corrplot.mixed, и он все еще не работает
- ссылались на информацию из введения Corrplot
Я изучил функцию condformat, но я не совсем уверен, может ли она выполнить заполнение каждой ячейки одним цветом в соответствии с общим градиентом, как я использовал для своего графика корреляции.
Чего мне здесь не хватает, что он не хочет возвращать мне мою таблицу с красивыми цветами?
Комментарии:
1. не могли бы вы добавить свои данные в формате
dput
2. @Bertil Baron Я добавил данные для загрузки в формате CSV. Посмотрел функцию dput, но не был уверен, как ее добавить — надеюсь, это тоже сработает. извините
Ответ №1:
У меня была та же ошибка, но я смог ее исправить, преобразовав my data.frame
в a matrix
. В итоге я corrplot(as.matrix(df), is.corr = FALSE)
получил .
Ответ №2:
Если я правильно понимаю, ваши опубликованные данные уже являются корреляционной матрицей, хотя и не полностью симметричной, которая была бы создана при вызове cor
необработанных данных.
В этом случае проблема заключается только в том, что у вас есть имена переменных (видов) в качестве столбца в ваших данных. Измените этот столбец на имена строк, удалите имена переменных и вызовите corrplot
, как предлагает пользователь9536160:
# read in your data
phyl <- as.data.frame(read_csv("Phylogeny.csv"))
# name rows and drop variable names in the df itself
row.names(phyl) <- phyl$Species
phyl <- phyl %>%
select(-Species)
# call corrplot
corrplot(as.matrix(phyl), is.corr = FALSE)
Результат: