我想以与print()
函数相同的方式将对象转换为它的字符串表示形式。但我也希望将该字符串存储在变量中,而不是将其发送到stdout。例如:
当我输入print(mtcars)
时,它将以漂亮的方式打印数据框。但是当我使用toString
方法时,它会转换为类似:c(21, 21, 22.8, ...), c(6, 6, 4, ....), ...
的字符串(我使用...
来缩短输出)。
但我希望字符串与print()
函数的格式相同。如果有sprint
函数将任何变量作为输入,那将是很好的。存在sprintf
,但是我必须事先了解对象的类型。
我看到了一些关于使用results <- capture.output(...)
的内容,但它看起来太复杂了。应该有一个简单的方法来做到这一点。
答案 0 :(得分:1)
@alistaire的评论是对的。我可以简单地使用capture.output。但我仍然需要将这些线粘贴在一起。所以我的最终解决方案是:
paste(capture.output(mtcars), collapse="\n")