【问题标题】:Subscript out of bounds error when creating a matrix创建矩阵时下标越界错误
【发布时间】:2020-04-16 21:23:45
【问题描述】:

这是我要构建的矩阵的代码:

Data3 = read.csv(filename, stringsAsFactors = FALSE)
Data3
v <- LETTERS[1:10]
A <- matrix(0, nrow = nrow(Data3),ncol = 5)
A
A[cbind(1:nrow(Data3),match(Data3$AwayTeam,v))] <- 1
A[cbind(1:nrow(Data3),match(Data3$HomeTeam,v))] <- -1
A

基本上,它将是一个 20x10 的矩阵,其中每支“客队”都用“1”表示,每支主队都用“-1”表示。

这段代码在我每次使用它时都运行良好,但由于某种原因,现在我遇到了“下标越界”错误。有关如何解决此问题的任何想法?

【问题讨论】:

    标签: r matrix


    【解决方案1】:

    v 的长度为 10,因此如果客队 >E,match(data$AwayTeam, v) 可以给出 >5 的索引,但矩阵 A 只有 5 列,因此尝试设置这些值超出了数组的大小。我猜以前的 csv 要么只有 A..E 团队,要么 ncol=5 已经从以前的 ncol=10 改变了。

    【讨论】:

      猜你喜欢
      • 2021-10-04
      • 1970-01-01
      • 2020-03-02
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-03
      相关资源
      最近更新 更多