【问题标题】:Error in cor(Auto[, -9]) : 'x' must be numericcor(Auto[, -9]) 中的错误:“x”必须是数字
【发布时间】:2021-09-16 19:34:14
【问题描述】:
data("Auto")
mpg01 <- rep(0, length(Auto$mpg))
mpg01[Auto$mpg > median(Auto$mpg)] <- 1
Auto <- data.frame(Auto, mpg01)
summary(Auto)
cor(Auto[, -9])
Error in cor(Auto[, -9]) : 'x' must be numeric

我不知道如何处理这个错误

【问题讨论】:

  • 我们无权访问 Auto 数据集,因此无法重现。我的猜测是数据集中的变量之一本质上是字符。
  • 我猜你正在使用ISLR 包 - 对吗?听起来您可能在Auto 中有一个列,它是字符或因子(非数字)。试试str(Auto),看看你的专栏是什么类别。
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: r


【解决方案1】:

我认为您没有正确引用列。试试 -

data <- ISLR::Auto
data$mpg01 <- as.integer(data$mpg > median(data$mpg))
cor(data[, -9])

#               mpg cylinders displacement horsepower weight acceleration  year origin mpg01
#mpg           1.00     -0.78        -0.81      -0.78  -0.83         0.42  0.58   0.57  0.84
#cylinders    -0.78      1.00         0.95       0.84   0.90        -0.50 -0.35  -0.57 -0.76
#displacement -0.81      0.95         1.00       0.90   0.93        -0.54 -0.37  -0.61 -0.75
#horsepower   -0.78      0.84         0.90       1.00   0.86        -0.69 -0.42  -0.46 -0.67
#weight       -0.83      0.90         0.93       0.86   1.00        -0.42 -0.31  -0.59 -0.76
#acceleration  0.42     -0.50        -0.54      -0.69  -0.42         1.00  0.29   0.21  0.35
#year          0.58     -0.35        -0.37      -0.42  -0.31         0.29  1.00   0.18  0.43
#origin        0.57     -0.57        -0.61      -0.46  -0.59         0.21  0.18   1.00  0.51
#mpg01         0.84     -0.76        -0.75      -0.67  -0.76         0.35  0.43   0.51  1.00

【讨论】:

    猜你喜欢
    • 2022-01-05
    • 2021-10-19
    • 1970-01-01
    • 2018-12-04
    • 1970-01-01
    • 2014-07-27
    • 2020-12-19
    • 2019-10-04
    • 1970-01-01
    相关资源
    最近更新 更多