首页 > 解决方案 > 如何迭代 R 中的 1 <= i < j <= n 元素?

问题描述

所以我想在矩阵的上三角部分做一个for循环,所以我只想要元素1 <= i < j <= n。我在 R 中进行了如下尝试:

for(i in 1:n-1) {
    for(j in i+1:n) {
        ...
    } 
}

但是这些 for 循环不是遍历 1 <= i < j <= n,而是遍历元素 i + 1 <= j <= i + n,1 <= i < n。

我是 R 新手,所以我不明白发生了什么。有人可以给我一个提示如何正确地做到这一点吗?谢谢。

标签: rfor-loopnested-loops

解决方案


for(i in seq(1, n - 1)) {
  for(j in seq(i + 1, n)) {
     ...
  } 
}

或者

for(i in 1:(n - 1)) {
  for(j in (i + 1):n) {
     ...
  } 
}

问题是R理解i+1:ni + (1:n)


推荐阅读