将整个字符串打印到控制台,而无需截断和调整全局设置



我读过这些SO关于在不截断的情况下打印rstudio的帖子:

列表输出被截断-如何在R 中使用str((扩展列出的变量

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

答案包括对工作室设置进行调整,然后覆盖控制台的所有未来输出。

有没有一种特殊的方法可以让r将整个字符串打印到控制台?

我试过了:

library(tidyverse)
library(foreach)
mystring <- foreach(i = 1:52) %do% {
paste0("'_gaWeek",i,"'!A16:B;")
} %>% unlist %>% toString()
print(mystring, len = length(mystring))
> print(mystring, len = length(mystring))
[1] "'_gaWeek1'!A16:B;, '_gaWeek2'!A16:B;, '_gaWeek3'!A16:B;, '_gaWeek4'!A16:B;, '_gaWeek5'!A16:B;, '_gaWeek6'!A16:B;, '_gaWeek7'!A16:B;, '_gaWeek8'!A16:B;, '_gaWeek9'!A16:B;, '_gaWeek10'!A16:B;, '_gaWeek11'!A16:B;, '_gaWeek12'!A16:B;, '_gaWeek13'!A16:B;, '_gaWeek14'!A16:B;, '_gaWeek15'!A16:B;, '_gaWeek16'!A16:B;, '_gaWeek17'!A16:B;, '_gaWeek18'!A16:B;, '_gaWeek19'!A16:B;, '_gaWeek20'!A16:B;, '_gaWeek21'!A16:B;, '_gaWeek22'!A16:B;, '_gaWeek23'!A16:B;, '_gaWeek24'!A16:B;, '_gaWeek25'!A16:B;, '_gaWeek26'!A16:B;, '_gaWeek27'!A16:B;, '_gaWeek28'!A16:B;, '_gaWeek29'!A16:B;, '_gaWeek30'!A16:B;, '_gaWeek31'!A16:B;, '_gaWeek32'!A16:B;, '_gaWeek33'!A16:B;, '_gaWeek34'!A16:B;, '_gaWeek35'!A16:B;, '_gaWeek36'!A16:B;, '_gaWeek37'!A16:B;, '_gaWeek38'!A16:B;, '_gaWeek39'!A16:B;, '_gaWeek40'!A16:B;, '_gaWeek41'!A16:B;, '_gaWeek42'!A16:B;, '_gaWeek43'!A16:B;, '_gaWeek44'!A16:B;, '_gaWeek45'!A16:B;, '_gaWeek46'!A16:B;, '_gaWeek47'!A16:B;, '_gaWeek48'!A16:B;, '_gaWeek49'!A16:B;, '_gaWeek50'!A16:B;, '_ga... <truncated>

它被截断了。有没有一种不改变rstudio设置的特殊方法?比如通过函数参数?我在这里试过print()

另外,我该如何去掉上面每个实例之间的逗号分隔符?

简短的回答是"否",因为限制打印的选项在IDE本身中,您无法从程序本身控制它(我假设您不是某个疯狂的黑客(,而不是语言功能。这就像试图阻止"WINDOWS"做事(尽管不是(。

在我看来,最简单的方法(特别(是打开它,做任何事情,然后关闭它。如果你坚持不这样做,你需要编写自己的函数:

myprint<- function(somestring,idelimit=100) {
for(i in seq(1,nchar(somestring),idelimit+1)) {
print(substr(somestring,i,i+idelimit));
}
}

我不是一个流利的R编码器,所以如果你发现语法错误,请告诉我。这个想法很简单——idelimit应该在studio截断的地方(我任意选择了100(,基本上你自己在进行拆分,这样字符串就可以一行接一行地打印出来,而不会被截断。每次你从somestring中取出最多idelimit长的一部分并打印出来。

最新更新