在 R 中进行关联时出错

Getting Error while doing correlation in R

我有一个代码,用于在 R 中提取 CSV 文件。 我有接近 40-50 个变量,我想减少维度以进行进一步分析。 Dataset 中的大多数列要么是 INT、FACTOR 要么是 NUM。 我的数据框 BO 的类型是列表。 以下代码的错误是“cor(BO) 中的错误:'x' 必须是数字”

heatmap(cor(BO),Rowv = NA,Colv = NA)

如评论中所述,您的 data.frame 中有非数值,您需要将其排除:

heatmap(cor(BO[, sapply(BO, is.numeric)]),Rowv = NA,Colv = NA)

说明

使用 sapply 循环遍历数据框的所有列(它在内部存储为 list,具有所有元素必须具有相同长度的不变式)并应用函数 is.numeric 到列。您会为所有数字列返回一个逻辑向量。使用此向量,您现在可以 select 正确的列。

带有内置数据集的示例

## 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)]))