在 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)]))
我有一个代码,用于在 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)]))