【问题标题】:Is there an R function to prevent some lines of the code to be executed是否有一个 R 函数来防止某些代码行被执行
【发布时间】:2021-07-23 22:46:24
【问题描述】:

我想知道是否有一个 R 函数可以阻止某些代码行被执行。

例如,如果这个函数存在并且被称为 prevent,我可以将我的代码放在第 10 行:

防止(第 12 行,第 17 行)

这些行不会被执行。

如果不满足我在进入循环之前测试的条件,我的应用程序会阻止执行循环中的某些行。

这是一个优化问题:我可以在循环内测试条件,但我宁愿先测试它,因为我已经知道条件是否为真。

这是一个例子:

         Condition=T

         if (Condition){
           Dont execute line 17
         }

         for (i in 1:n){
line 17    Print("I'm happy")
         }

【问题讨论】:

  • 这通常是个坏主意。想象一下你的循环变大了。现在,由于文件中较早编写的代码,您有一些不可见的行将不会运行。混乱的秘诀。如果你真的想这样玩,你可以调查body()<- 搞乱函数体。
  • 我知道这是一个坏主意,但我仍然感到惊讶,我认为这是一个常见问题。还是谢谢你的回答,我去看看body函数。

标签: r function optimization comments


【解决方案1】:

您可以在不想执行的代码行前添加一个“#”

# 2+2
2+2

你可以在 mac 的 studio 中使用 cmd+shift+c 进行多行操作,应该有 Linux 或 windows 等价物

【讨论】:

    【解决方案2】:

    您可以简单地使用if 语句:

    condition <- T
    
    for (i in 1:3) {
      if (condition) {
        cat("Execute this \n")
      }
    }
    

    【讨论】:

    • 问题是我想在循环之前测试条件
    • 条件评估在循环之前完成。我举了一个简单的例子Condition &lt;- T,但你可以评估你需要的任何东西。比如Condition &lt;- A == B
    • 是的,但是你在for里面做测试,我希望条件测试在for之前
    • 如果没有您正在寻找的代码示例,我将无法提供进一步的帮助。
    • 我已经在原始消息中添加了一个示例
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多