【问题标题】:how to prevent the output of R to scroll away in bash? [duplicate]如何防止 R 的输出在 bash 中滚动? [复制]
【发布时间】:2010-10-01 08:18:41
【问题描述】:

可能重复:
Equivalent to unix “less” command within R console

我在 bash 的 unix 下使用 R。

有时命令输出的行数比 bash 多。

如何防止输出滚动? IE。 R中是否有一些等价的越来越少的-S?

【问题讨论】:

标签: r


【解决方案1】:

在 R 中执行此操作的一种方法也是重定向到文件:

sink("a_file.txt")
...your_commands...
sink()

【讨论】:

    【解决方案2】:

    我认为page() 函数就像在 R 会话中拥有| less。它允许对象的两种表示形式; i) 你从 dput() 获得的版本,以及 ii) 如果你 print()-ed 对象获得的版本。

    dat <- data.frame(matrix(rnorm(2000), ncol = 5))
    page(dat, method = "print")
    

    【讨论】:

      【解决方案3】:

      也许可以将您的表达式包装在 capture.output 中,然后将结果分页到终端。

      pager <- function(cmd,nlines=10){
        output = capture.output(cmd)
        pages = seq(1,length(output),by=nlines)
        for(p in pages){
          f = p
          l = min(p+nlines-1,length(output))
          cat(paste(output[f:l],"\n"))
          readline("*more*")
        }
        return(invisible(0))
      }
      

      用法:pager(ls()),然后在每个“更多”提示符处按回车键(不是空格或其他任何内容)。

      目前它不返回值。哦,如果没有输出,它就会失败。但是你可以修复这些:)

      或者在 ESS 中使用 emacs 并让它全部向后滚动...

      【讨论】:

        【解决方案4】:

        不会

        any_command | more 
        

        工作正常吗?

        【讨论】:

        • 可能这个人在 R 内部,所以在那个阶段无法使用 bash 命令。
        • 忘了说清楚:我在交互模式下在 bash 中使用 R,bash 命令在那里不起作用。
        【解决方案5】:

        “bash”没有行,你的终端有。

        您可以在该应用程序的设置中设置终端的行数。

        【讨论】:

        • 仍然,如果输出的行数多于终端当前设置的行数,如何防止输出滚动?您是否认真建议根据 R 输出的长度来设置当前使用的 shell 的行数?
        【解决方案6】:

        您的问题不清楚。如果您正在谈论以交互方式使用 R 并且不小心运行了一个吐出大量行的命令,请在您的 R 会话中运行如下内容:options(max.print=4000)

        【讨论】:

          猜你喜欢
          • 2023-01-08
          • 2017-09-24
          • 1970-01-01
          • 1970-01-01
          • 2015-02-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多