【问题标题】:'x' must be numeric Traceback: for computing correlation for a matrix'x' 必须是数字 Traceback:用于计算矩阵的相关性
【发布时间】:2017-07-10 10:00:29
【问题描述】:

我想计算矩阵中每一列之间的相关性。但它会抛出一个错误:“cor 中的错误(sample, use = "pairwise.complete.obs"): 'x' must be numeric Traceback:

  1. cor(sample, use = "pairwise.complete.obs")
  2. stop("'x' must be numeric")"

这就是我所做的:

data = read.csv("mail.csv", header=F)

sample = data[-(1),-(1)]

cor(sample, use="pairwise.complete.obs")

我的数据集如下所示:如果有人能告诉我哪里做错了,我将不胜感激? enter image description here

【问题讨论】:

  • 查看 str(data) 可以为您提供线索。

标签: r jupyter-notebook


【解决方案1】:

运行

str(数据) 查看列的数据类型 - 例如:数字、因子、整数。 看看哪一列不是数字应该是数字,然后……我不太擅长引用矩阵中的列,所以把它放到 dataframe 中。重命名您的列,并将其重新放入一个矩阵

data = as.data.frame(data)

data$column = as.numeric(data$column)
where "column" represents your issue column.  

data = as.matrix(data) 

现在您可以重新运行您的代码。

【讨论】:

  • 除了@Yaseem 所说的,相关性测试还需要数字类,因此您还可以使用library("dplyr") select_if(sample, is.numeric) 来确保您从数据集中选择数字变量
猜你喜欢
  • 2021-12-29
  • 2018-10-10
  • 2016-06-12
  • 2019-01-08
  • 1970-01-01
  • 2014-07-27
  • 2012-10-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多