Как уже упоминалось в комментариях, в вашем data.frame
есть нечисловые значения, которые нужно исключить:
heatmap(cor(BO[, sapply(BO, is.numeric)]),Rowv = NA,Colv = NA)
Объяснение
С sapply
вы перебираете все столбцы вашего фрейма данных (который внутренне хранится как list
с вариантом, что все элементы должны быть одинаковой длины) и применяете функцию is.numeric
к колонны. Вы получаете логический вектор для всех столбцов, которые являются числовыми. С этим вектором вы можете теперь выбрать правильные столбцы.
Пример со встроенным набором данных
## does not work for the same reason
heatmap(cor(iris))
# Error in cor(iris) : 'x' must be numeric
## works
heatmap(cor(iris[, sapply(iris, is.numeric)]))