创建矩阵时下标超出范围错误

时间:2020-04-16 21:23:45

标签: r matrix

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

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”表示。

我每次使用它时,这段代码都能正常工作,但是由于某种原因,我现在遇到了“下标超出范围”错误。有关如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:1)

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