我想以与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")