R

时间:2016-02-12 01:41:49

标签: r subscript

我的简单代码是:

library(kernlab)
zoo <- matrix(sample(1:10, 240*7200, replace = TRUE), 240, 7200)
mx=data.frame(matrix(ncol = 2, nrow =30))
mx[1,1]=0
mx[1,2]=1
m=0
mm=1
for (i in 1:30){
  m=m+length(zoo[,1])
  mx[i+1,1]=m
  mm=mm+length(zoo[,1])
  mx[i+1,2]=mm
}

以上代码是创建mx的第一部分。

ram=data.frame(matrix(ncol = 30, nrow = length(zoo[,1])))
for (i in 1:30){
  A<-zoo[,c(mx[i,2]:mx[i,1]+length(zoo[,1]))]
  sc <- specc(A,data=kernelMatrix,centers=2)
  ram[,i]=data.matrix(sc@.Data)
}

这部分给出了

Error in zoo[, c(mx[i, 2]:mx[i, 1] + length(zoo[, 1]))] : 
  subscript out of bounds

如果我从i in 1:29运行它,则没有错误。因此问题出在i=30。但是,如果我手动插入mx[30,2]mx[30,1]的值,则不会再出现错误。我不明白这个问题,无法解决。有人可以提出解决方案吗?

注意:dim(zoo)=240 7200

注意:A<-zoo[,c(mx[30,2]:mx[30,1]+length(zoo[,1]))]会出现同样的错误。 mx [30,2] = 6961 mx [30,1] = 7200。然后A<-zoo[,c(6961:7200)]无误地运行。

0 个答案:

没有答案