关于将调试相关信息打印到屏幕上

时间:2012-12-17 17:53:46

标签: r

  

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

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

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

1 个答案:

答案 0 :(得分:0)

考虑到@ Matthew的建议,问题可能只是你试图一次对几个变量/字符串使用print。这不行。

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

让我们创建一些示例变量来输出     我< - 3     a<-letters [1:5]

您可能正在尝试这样做:

# 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"