【问题标题】:regarding printing the debugging related information to the screen [duplicate]关于将调试相关信息打印到屏幕上[重复]
【发布时间】:2012-12-17 17:53:46
【问题描述】:

可能重复:
How to be alerted about the ongoing progress of a loop/lapply

在调试 R 程序时,我想将输出信息打印到屏幕上以进行调试。例如,如何在同一行中生成如下内容。

"loop= 5", "a=5","b=5"

【问题讨论】:

  • 字面意思?只需在循环中添加一些打印行。以for(i in 1:5) print("loop =",a[i]) 为例。
  • message("loop=", a[i])。 ....实际上,我认为您正在尝试使用print,如cat。那是行不通的。

标签: r


【解决方案1】:

采纳@Matthew 的建议,问题可能只是您试图同时在多个变量/字符串上使用print。这行不通。

如果您想将print 与字符串一起使用,您需要提供一个单独的字符串。最有效的方法是使用paste()
还有很多替代方案,例如catsprintf。这是一个简单的例子:

让我们创建一些示例变量来输出 我

您可能正在尝试这样做:

# This will *NOT* work
print("loop = ", i, "a = ", a[[i]])

请尝试以下方法之一: (注:paste0 与使用paste(..., sep="") 相同)

# using print( paste0 (.) )
print(paste0("loop = ", i, ", a = ", a[[i]]))
#  [1] "loop = 3, a = c

# using cat()
cat("loop = ", i, ", a = ", a[[i]])
#  loop =  3 , a =  c

# using sprintf
sprintf("loop = %d, a = %s", i, a[[i]])
#  [1] "loop = 3, a = c"

【讨论】:

    猜你喜欢
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-02
    • 2013-07-09
    • 2018-10-14
    • 2023-03-15
    • 1970-01-01
    相关资源
    最近更新 更多