【问题标题】:R: determine if a script is running in Windows or LinuxR:确定脚本是在 Windows 还是 Linux 中运行
【发布时间】:2011-01-06 23:27:00
【问题描述】:

有没有一种简单的方法来以编程方式确定 R 脚本是在 Windows 还是 Linux 中执行?

【问题讨论】:

  • 我参加这个聚会有点晚了,但考虑一下这个 Google 代码搜索:google.com/… -- 即指定 'as_lang=r' 以仅在查找字符串 'linux' 和'视窗'。它就在那里....
  • 太棒了!我不知道 GOOG 代码搜索。我一直在努力寻找这个,但一直得到不相关的结果。

标签: r multiplatform


【解决方案1】:
.Platform$OS.type

返回

[1] "unix"

或者别的什么。

【讨论】:

  • 另见 R.version() 其他操作系统类型的东西。
  • 啊……大写。这是 R.Version()
【解决方案2】:
if(.Platform$OS.type == "unix") {
} else {

}

【讨论】:

  • 我不应该在第一条评论上浪费时间。又被打得落花流水。
  • 如果它是一个有用的评论,我会很同情......但那真的是浪费时间! :)
  • 谢谢!我不记得这是为了挽救我的生命。
  • 实际上这也会在 OSX 上返回“unix”。我想你还需要检查 Sys.info()["sysname"]=='Darwin' 来区分。
【解决方案3】:
Sys.info()["sysname"]

【讨论】:

    【解决方案4】:

    我从三台 Linux 或 Windows 机器中的任何一台运行相同的代码。我使用以下设置工作目录:

    if(R.Version()$os == "linux-gnu"){
      dir.pre <- "/home"
    } else {
      dir.pre <- "C:/Users"
    }
    

    在我的 debian linux 服务器和我的 Ubuntu 笔记本电脑上:

    > .Platform$OS.type
    [1] "unix"
    > R.Version()$os
    [1] "linux-gnu"
    

    在我的 Windows 10 笔记本电脑上,在 RStudio 中:

    > .Platform$OS.type
    [1] "windows"
    > R.Version()$os
    [1] "mingw32"
    

    请随意编辑并添加到此列表中。

    【讨论】:

      猜你喜欢
      • 2011-03-13
      • 1970-01-01
      • 2011-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-18
      • 1970-01-01
      相关资源
      最近更新 更多