簡體   English   中英

R錯誤類型“下標超出范圍”

[英]R error type “Subscript out of bounds”

我正在模擬一個相關矩陣,其中60個變量按以下方式相關:

  • 每兩個變量(1-2、3-4 ... 59-60)更高(0.6)
  • 每組12個變量(1-12,13-24 ...)為中等(0.3)

     mc <- matrix(0,60,60) diag(mc) <- 1 for (c in seq(1,59,2)){ # every pair of variables in order are given 0.6 correlation mc[c,c+1] <- 0.6 mc[c+1,c] <- 0.6 } for (n in seq(1,51,10)){ # every group of 12 are given correlation of 0.3 for (w in seq(12,60,12)){ # these are variables 11-12, 21-22 and such. mc[n:n+1,c(n+2,w)] <- 0.2 mc[c(n+2,w),n:n+1] <- 0.2 } } for (m in seq(3,9,2)){ # every group of 12 are given correlation of 0.3 for (w in seq(12,60,12)){ # these variables are the rest. mc[m:m+1,c(1:m-1,m+2:w)] <- 0.2 mc[c(1:m-1,m+2:w),m:m+1] <- 0.2 } } 

第一個循環效果很好,但第二個和第三個循環效果不好。 我收到此錯誤消息:

Error in `[<-`(`*tmp*`, m:m + 1, c(1:m - 1, m + 2:w), value = 0.2) : 
  subscript out of bounds

Error in `[<-`(`*tmp*`, m:m + 1, c(1:m - 1, m + 2:w), value = 0.2) : 
  subscript out of bounds

我非常感謝任何提示,因為我看不到循環命令會超過矩陣尺寸。 在此先多謝!

請注意:優先於+ 例如, n:n+1n+1相同。 我猜你想要n:(n+1)

w的最大值為60:

w <- 60
m <- 1
m+2:w
#[1]  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
#[49] 51 52 53 54 55 56 57 58 59 60 61

61超出范圍。 您需要添加很多括號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM