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

时间:2018-01-25 17:53:32

标签: r

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

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

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

我看到了一些关于使用results <- capture.output(...)的内容,但它看起来太复杂了。应该有一个简单的方法来做到这一点。

1 个答案:

答案 0 :(得分:1)

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

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