如果n = 1,如何使R跳过2:n周期?

Lin*_*ard 2 r range

我有下一个查询.我有一个周期

for (i in 2:n) { ... }
Run Code Online (Sandbox Code Playgroud)

并且它在n = 1的情况下执行两次,其中i等于2然后为1,但我希望在这种情况下根本不执行该循环.我也试过了

seq(from = 2, to = 1, by = 1)
Run Code Online (Sandbox Code Playgroud)

但它会产生异常.

我想比常见的问题,但我是那种语言的新手,并且无法绕过它或在互联网上找到解决方法.先感谢您.

Ron*_*hah 8

使用seq_len 更安全使用

n <- 1
for (i in seq_len(n)[-1]) {
  cat("Check", i, "\n")
}

#Does not print anything

n <- 4
for (i in seq_len(n)[-1]) {
  cat("Check", i, "\n")
}

#Check 2 
#Check 3 
#Check 4 
Run Code Online (Sandbox Code Playgroud)

当你使用它的2:n时候n = 1

2:1
#[1] 2 1
Run Code Online (Sandbox Code Playgroud)

因此,它运行循环两次.

  • 我犯了一个愚蠢的错误.它应该是`seq_len(n-1)+ 1`. (2认同)