避免打印到控制台的字符串被截断(在RStudio中)


71

我想在RStudio控制台上打印一个长字符串,以便它不会被截断。

> paste(1:300, letters, collapse=" ")
[1] "1 a 2 b 3 c 4 d 5 e 6 f 7 g 8 h 9 i 
...
181 y 182 z 183 a 184 b... <truncated>

我以为这应该很简单,但是我不知道怎么做。我试过了

options(max.print = 10000)

并浏览了print帮助页面上的参数。仍然没有运气。

为了达到此目的,我必须更改哪些参数/设置?


print我猜它不会出现在帮助页面上,因为它不是来自R,而是来自Rstudio。对于您的示例,R控制台中没有截断。
法兰克(Frank)

2
FWIW,paste()在RStudio 0.99.486中,对我的调用输出不会被截断(这可能已经过时了)。
Josh O'Brien

我也是。即使我在OP的代码中将300更改为10,000,RStudio 0.99.896中也不存在任何问题。
eipi10 '16

1
啊好吧。我使用的是0.99.1130版预览版。因此,也许它是一项新功能...
Mark Heckmann

Answers:


111

这是RStudio的特定功能,旨在帮助解决打印过长的字符串可能导致IDE缓慢的问题。(我相信它是在最新版本v0.99.896中添加的)

您可以通过将Limit length of lines displayed in the console to:选项设置为0来选择不使用这种截断功能(请参阅对话框中的最后一个选项):

在此处输入图片说明


该选项在我的Rstudio中不可用,我使用的是0.99.903版本,这是快照,如果您有任何代码或其他方法可以帮助您,谢谢您!
Subro

1
上面的答案在RStudio上是正确的。为了进入上面引用的屏幕,请在IDE上方的RStudio选项卡中,选择Tools --> Global Options...,然后按照建议的步骤进行操作。请记住,这些是全局选项,因此请谨慎使用,对于大输出,这可能会大大降低IDE性能(有时会冻结)。
Marquistador '17

1
是。但是0(无限的控制台历史记录)可能会减慢速度并消耗内存,如果您不小心打印了整个数据帧(例如由于输入错误)。最好选择较大的值,例如100,000。
smci
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.