如何将输出打印到变量而不是标准输出?



我想以与print()函数相同的方式将对象转换为它的字符串表示形式。但我也想将该字符串存储在变量中,而不是将其发送到 stdout。例如:

当我输入print(mtcars)时,它将以一种漂亮的方式打印数据框。但是当我使用toString方法时,它会转换为类似:c(21, 21, 22.8, ...), c(6, 6, 4, ....), ...的字符串(我使用...来缩短输出)。

但我希望字符串与print()函数的格式相同。如果有一个sprint函数将任何变量作为输入,那就太好了。存在sprintf,但是我必须事先知道对象的类型。

我看到了一些关于使用results <- capture.output(...)的东西,但它似乎太复杂了。应该有一个简单的方法可以做到这一点。

@alistaire的评论是对的。我可以简单地使用capture.output。但我仍然需要将这些行粘贴在一起。所以我的最终解决方案是:

paste(capture.output(mtcars), collapse="n") 

最新更新