在不执行print()语句的情况下运行函数

在不执行print()语句的情况下运行函数,r,R,我编写了一个函数,在循环300次后输出一个元素数值。我让它在每个周期打印大约10行,以知道它在哪里。现在我想在1000个for循环中运行这个for循环本身,并将结果数字放入矩阵中。但是它打印了很多东西,我不知道它在外1000循环for循环的执行中的位置。内部for循环的输出压倒在外部循环的每个周期执行的print语句。下面是它的外观: for(i in 1:1000){ function(...){...} #prints 10 lines 300 times before outputt

我编写了一个函数,在循环300次后输出一个元素数值。我让它在每个周期打印大约10行,以知道它在哪里。现在我想在1000个for循环中运行这个for循环本身,并将结果数字放入矩阵中。但是它打印了很多东西,我不知道它在外1000循环for循环的执行中的位置。内部for循环的输出压倒在外部循环的每个周期执行的print语句。下面是它的外观:

for(i in 1:1000){
   function(...){...} #prints 10 lines 300 times before outputting a single element numeric
   cat("Outer loop step "); print(i)}

现在我不想从我的函数中删除print语句,但我想在for循环中调用函数时使它们静音。如何在不执行打印语句的情况下运行函数?

修改函数,以便传入调试真/假参数来控制打印语句。

修改函数,以便传入调试真/假参数来控制打印语句。

不要使用打印或cat。使用消息代替。然后可以使用suppressMessages来抑制消息输出。

不要使用print或cat。使用消息代替。然后,您可以使用suppressMessages来抑制消息输出。

@jdharison这不起作用,请在命令提示下检查它:>2[prints 2]>invisible2[prints nothing]>invisibleprint2[prints 2]@jdharison这不起作用,请在命令提示下检查它:>2[prints 2]>invisibleprint2[prints nothing]>invisibleprint2[prints 2]怎么做?将布尔调试参数添加到函数调用,根据调试参数的设置在函数内执行打印语句。怎么做?将布尔调试参数添加到函数调用,根据调试参数的设置在函数内执行打印语句。