R 循环,带有与对象存在有关的 if 语句

R Looping with an if statement having to do with object existence

提问人:user22757672 提问时间:10/20/2023 更新时间:10/20/2023 访问量:47

问:

假设,带有 if 语句的循环的逻辑是什么,其中测试表达式是“当对象运行并且存在时,执行代码 A”,否则“执行代码 b”?如何运行 for 循环 运行一个对象并让循环继续到 if 语句而不中断。思潮?

for(i in 1:10){
code
object<- code
if (object doesn't exist){
code A
} 
else{ 
code B
}
}
r 循环 if 语句

评论

2赞 divibisan 10/20/2023
你只是在寻找吗?if (!exists("object")) {
0赞 Jon Spring 10/20/2023
你假设并把它分配给对象 -- 是否产生不同的结果,这取决于 ,该结果可能在哪里,也可能不是?codecodeiNULL
0赞 user22757672 10/20/2023
是的,第一个代码是处理 [i] 的位置。
0赞 user22757672 10/20/2023
我对如何在 if 语句之前才定义对象的情况下运行循环感到困惑。就像我无法在循环之外定义一个css选择器一样,如果页面在循环期间刷新,但是如果你在if语句之前定义对象,那么循环就会中断。
0赞 r2evans 10/20/2023
“运行循环,直到 if 语句之前才定义对象”......也就是说,如果您定义 ,那么将返回(并且在此之前会返回)。if (exists("object")) { ... } else { ... }quux <- 1:10exists("quux")TRUEFALSE

答:

1赞 Jon Spring 10/20/2023 #1

这是一个演示,但我更喜欢它更简洁。

for (i in 1:4) {
  if (i == 2) {a <- "TWO!"} else { if (exists("a")) rm(a) }

  if(!exists("a")) {
    message("i: ", i, " and a doesn't exist")
  } else {
    message("i: ", i, " and a is ", a)
  }
}


#i: 1 and a doesn't exist
#i: 2 and a is TWO!
#i: 3 and a doesn't exist
#i: 4 and a doesn't exist

a在定义之前不存在于循环中。然后下次我删除它。i == 2

因此,当我们进入包含消息的部分时,我们可以单独处理是否存在,并相应地输出。a