读者的问题是,他一个R命令在rstudio的console里面显示出来的日志最多就1000行,这样的话它很多信息被淹没了,所以鼠标滚轮是没办法查看被淹没的信息,求解决方案:
最多就1000行
这个时候有治标和治本的两个方案:
治标:修改最大显示行
我们通过求助chatGPT,通过BioinfoArk提供的中国区chatGPT查询,发现它给出来的options命令里面的max.print设置 并不是我们需要的
max.print设置
然后反复沟通后,发现chatGPT这次让我设置 max.show.history ,其实也不对:
max.show.history
因为它改变的是“是否输出”,如下所示:
改变的是“是否输出”
调大这些参数,确实是能让它输出,但是没有保存在console,应该是有其它参数,但是求助chatGPT也需要反复沟通和调试:
代码语言:javascript复制options(max.show.history = 200000)
后来chatGPT给了我治本的方法,就是存储输出结果在文件里面:
代码语言:javascript复制lapply(1:1000, print) -> output_file
sink("output.log")
output_file
sink()
getwd()
这个时候输出的 output.log 文件里面的就有无限制的信息啦!
治本的方法;输出到日志文件
其实也可以借鉴Linux的黑白命令行里面的重定向语法,通过BioinfoArk提供的中国区chatGPT查询:
在Linux命令行中,你可以使用重定向符号来将命令的输出结果保存到文件中。下面是一些常用的重定向符号和用法:
>
:将命令的标准输出重定向到文件中,如果文件不存在则创建,如果文件已存在则覆盖原有内容。例如:
command > output.txt
这将将命令的标准输出保存到名为output.txt
的文件中。
>>
:将命令的标准输出追加到文件中,如果文件不存在则创建。例如:
command >> output.txt
这将将命令的标准输出追加到名为output.txt
的文件中。
2>
:将命令的错误输出重定向到文件中。例如:
command 2> error.txt
这将将命令的错误输出保存到名为error.txt
的文件中。
2>>
:将命令的错误输出追加到文件中。例如:
command 2>> error.txt
这将将命令的错误输出追加到名为error.txt
的文件中。
&>
或&>>
:将命令的标准输出和错误输出都重定向到文件中。例如:
command &> output.txt
这将将命令的标准输出和错误输出都保存到名为output.txt
的文件中。
所以我们不能在rstudio里面运行命令,需要在Linux里面运行,比如我们如下所示重建一个脚本文件:tmp.R
,它里面有R代码,所以可以运行它,并且输出内容:
R代码
另外一个选项是直接运行命令,如下所示:
代码语言:javascript复制Rscript -e "a=1:100;print(a)"
这样的话,这个命令因为是在Linux里面运行,所以可以借鉴重定向,很简单的保存结果:
代码语言:javascript复制Rscript -e "a=1:100;print(a)" 1 > log 2>err
这个时候有 log和err两个文件,只需要肉眼查看里面的信息即可,无论是文件信息行数量多大,都可以看!