首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >交互式R命令的输出结果如何保存

交互式R命令的输出结果如何保存

作者头像
生信技能树
发布2023-10-23 19:06:49
发布2023-10-23 19:06:49
71800
代码可运行
举报
文章被收录于专栏:生信技能树生信技能树
运行总次数:0
代码可运行

读者的问题是,他一个R命令在rstudio的console里面显示出来的日志最多就1000行,这样的话它很多信息被淹没了,所以鼠标滚轮是没办法查看被淹没的信息,求解决方案:

最多就1000行

这个时候有治标和治本的两个方案:

治标:修改最大显示行

我们通过求助chatGPT,通过BioinfoArk提供的中国区chatGPT查询,发现它给出来的options命令里面的max.print设置 并不是我们需要的

max.print设置

然后反复沟通后,发现chatGPT这次让我设置 max.show.history ,其实也不对:

max.show.history

因为它改变的是“是否输出”,如下所示:

改变的是“是否输出”

调大这些参数,确实是能让它输出,但是没有保存在console,应该是有其它参数,但是求助chatGPT也需要反复沟通和调试:

代码语言:javascript
代码运行次数:0
运行
复制
options(max.show.history = 200000)

后来chatGPT给了我治本的方法,就是存储输出结果在文件里面:

代码语言:javascript
代码运行次数:0
运行
复制
lapply(1:1000, print)  -> output_file

sink("output.log")
output_file
sink()
getwd()

这个时候输出的 output.log 文件里面的就有无限制的信息啦!

治本的方法;输出到日志文件

其实也可以借鉴Linux的黑白命令行里面的重定向语法,通过BioinfoArk提供的中国区chatGPT查询

在Linux命令行中,你可以使用重定向符号来将命令的输出结果保存到文件中。下面是一些常用的重定向符号和用法:

  • >:将命令的标准输出重定向到文件中,如果文件不存在则创建,如果文件已存在则覆盖原有内容。例如:
代码语言:javascript
代码运行次数:0
运行
复制
command > output.txt 

这将将命令的标准输出保存到名为output.txt的文件中。

  • >>:将命令的标准输出追加到文件中,如果文件不存在则创建。例如:
代码语言:javascript
代码运行次数:0
运行
复制
command >> output.txt 

这将将命令的标准输出追加到名为output.txt的文件中。

  • 2>:将命令的错误输出重定向到文件中。例如:
代码语言:javascript
代码运行次数:0
运行
复制
command 2> error.txt 

这将将命令的错误输出保存到名为error.txt的文件中。

  • 2>>:将命令的错误输出追加到文件中。例如:
代码语言:javascript
代码运行次数:0
运行
复制
command 2>> error.txt 

这将将命令的错误输出追加到名为error.txt的文件中。

  • &>&>>:将命令的标准输出和错误输出都重定向到文件中。例如:
代码语言:javascript
代码运行次数:0
运行
复制
command &> output.txt 

这将将命令的标准输出和错误输出都保存到名为output.txt的文件中。

所以我们不能在rstudio里面运行命令,需要在Linux里面运行,比如我们如下所示重建一个脚本文件:tmp.R ,它里面有R代码,所以可以运行它,并且输出内容:

R代码

另外一个选项是直接运行命令,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
Rscript -e "a=1:100;print(a)"

这样的话,这个命令因为是在Linux里面运行,所以可以借鉴重定向,很简单的保存结果:

代码语言:javascript
代码运行次数:0
运行
复制
Rscript -e "a=1:100;print(a)" 1 > log 2>err

这个时候有 log和err两个文件,只需要肉眼查看里面的信息即可,无论是文件信息行数量多大,都可以看!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-10-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 治标:修改最大显示行
  • 治本的方法;输出到日志文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档