【问题标题】:R interactive and batch mode and the heIp browserR 交互和批处理模式以及 heIp 浏览器
【发布时间】:2012-10-13 18:38:46
【问题描述】:

在“批处理模式”下运行 R 时,interactive 标志设置为 false,这可以防止在嵌入/批处理设置的上下文中会中断进程的任何类型的用户提示。见:

R -e 'interactive()'

在使用Rscript 时有些保留。也可以使用interactivity 包手动设置该标志。为了测试,我们可以尝试:

R -e 'install.packages("anything")

假设尚未设置 CRAN 镜像,install.packages 将不会显示一些交互式镜像选择器,而是会抛出错误并退出。

但是,我注意到help? 命令仍然有效。例如,下面的命令将显示帮助浏览器,并且在我按 q 之前它不会继续。

R -e 'help(lm); 1+2'

但是,当将输出发送到文件时,它不会显示交互式提示,而只是将完整的帮助文档转储到输出中:

R -e 'help(lm); 1+2' > output.txt

我现在对使用help 时到底发生了什么感到有些困惑。为什么即使 R 在批处理模式下运行,您也会获得交互式帮助浏览器?这是R 的功能还是来自 Debian/Ubuntu 前端?由于 R 等待使用输入,在内部(即 Rserve、RInside、JRI 等)调用 help 函数时,R 是否有无响应的风险?

【问题讨论】:

    标签: r cran rapache rserve


    【解决方案1】:

    help实际上产生了一个新进程pager,类似于“less”:

    > help(lm); 1+2
    [1]+  Stopped                 R -e 'help(lm); 1+2'
    $ ps
      PID TTY          TIME CMD
    27735 pts/6    00:00:00 bash
    31607 pts/6    00:00:00 R
    31615 pts/6    00:00:00 sh
    31616 pts/6    00:00:00 pager
    31617 pts/6    00:00:00 ps
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-10
      • 1970-01-01
      • 2022-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-30
      • 1970-01-01
      相关资源
      最近更新 更多