【问题标题】:How to increase the number of columns using R in Linux如何在 Linux 中使用 R 增加列数
【发布时间】:2010-11-13 10:28:01
【问题描述】:

这可能看起来很琐碎,但它会影响我的工作效率。我在 Linux 上以终端模式使用 R。与 Windows IDE 不同,Linux 将列数限制为 80,从而使数据集的检查更加困难。有没有办法设置最大列数?

【问题讨论】:

  • 所以这些解决方案似乎都不适用于 StatET?

标签: r


【解决方案1】:

您可以使用 TK gui,我认为选项是 --ui=TK 或类似的东西。

或者在终端中使用它是一个硬性要求?

【讨论】:

    【解决方案2】:

    用类似的东西设置它

    options("width"=200)
    

    这实际上是我在 ~/.Rprofile 中的内容。有关详细信息,请参阅帮助(选项)。

    【讨论】:

      【解决方案3】:

      从 Brendan O'Connor 的 util.R (http://github.com/brendano/dlanalysis/blob/master/util.R) 中窃取一个想法,您可以使用 stty 命令让您的 R 终端设置默认宽度。重新编写他的脚本以在 linux 上工作,你会得到以下性感的 1 班轮:

      options(width=as.integer(system("stty -a | head -n 1 | awk '{print $7}' | sed 's/;//'", intern=T)))
      

      【讨论】:

      • 对于 mac 10.8.5,它是 options(width=as.integer(system("stty -a | head -n 1 | awk '{print $6}'", intern=T)))
      • 另见@plhn 在系统调用中使用tput cols 的答案。
      【解决方案4】:

      这是我的~/.Rprofile 文件中的一个函数:

      wideScreen <- function(howWide=Sys.getenv("COLUMNS")) {
        options(width=as.integer(howWide))
      }
      

      调用不带howWide 参数的函数会将列设置为终端的宽度。您可以选择传入参数以将宽度设置为您选择的任意数字。

      几乎像 Josh 的建议,但没有那么神奇 :-)

      【讨论】:

      • 事实证明,如果您真的想从.Rprofile 执行此操作,乔希的作品,但事实并非如此。显然Sys.getenv("COLUMNS") 在运行.Rprofile 时还不起作用。因此,仅当您不希望自动调用 wideScreen() 时,此答案才有帮助。
      • 如果你想从 .Rprofile 调用wideScreen() 以便它被自动调用,你必须确保它是一个环境变量。尝试在终端中输入env | grep COLUMNS,如果您没有看到任何内容,则将export COLUMNS 添加到您的.bash_rc 文件中。
      • 不幸的是,如果您在启动 R 后调整窗口大小,COLUMNS 环境变量不会在 R 中更新,因此您会得到错误的宽度。
      • @MartinC.Martin:好奇:它在本地终端的 OSX 上和 ssh 进入计算服务器时(甚至通过 gnu/screen)为我更新。我可以拉伸我的窗口,调用wideScreen,它可以工作,然后缩小它,调用wideScreen,它又可以工作了......
      • @SteveLianoglou:奇怪,我在评论之前测试了它,然后又测试了一遍。我正在从 Cygwin 进入 Linux(Ubuntu)。当我只是在 bash 提示符下调整窗口大小时,COLUMNS 会在 bash (echo $COLUMNS) 中更新。但是,如果我启动非 GUI R,然后执行 Sys.genenv("COLUMNS"),并在不退出 R 的情况下调整大小,则不会更新 COLUMNS env var。而且我认为这就是它应该工作的方式,我认为 bash 不应该在调整大小时更新所有子进程的环境变量。奇怪的是你看到的不一样。 OSX 与 Linux 的对比?
      【解决方案5】:

      我用这个:

      wideScreen <- function(howWide=as.numeric(strsplit(system('stty size', intern=T), ' ')[[1]])[2]) {
         options(width=as.integer(howWide))
      }
      

      因为COLUMNS 环境变量和tset 在调整窗口大小时不会更新,但stty size 会更新。

      【讨论】:

      • 这似乎是最稳健的方法。不幸的是,它在 Windows 上不起作用……但我可以忍受。
      【解决方案6】:

      将此行插入您的~/.Rprofile

      options(width=system("tput cols", intern=TRUE))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-11-06
        • 2016-11-21
        • 2016-05-03
        • 1970-01-01
        • 2018-06-17
        • 1970-01-01
        相关资源
        最近更新 更多