检测 R 中的操作系统(例如,用于自适应 .Rprofile 文件)

Posted

技术标签:

【中文标题】检测 R 中的操作系统(例如,用于自适应 .Rprofile 文件)【英文标题】:detecting operating system in R (e.g. for adaptive .Rprofile files) 【发布时间】:2011-05-26 16:09:12 【问题描述】:

我想知道如何在 R 中自动检测操作系统,例如将东西放在 .Rprofile 中。

【问题讨论】:

相关:***.com/questions/2096473/… 但下面的答案更完整。 【参考方案1】:
switch(Sys.info()[['sysname']],
Windows= print("I'm a Windows PC."),
Linux  = print("I'm a penguin."),
Darwin = print("I'm a Mac."))

由于我花了很多时间来解决这个问题,我认为其他人也会受益。

问候,

布赖恩

【讨论】:

太好了,谢谢【参考方案2】:
> Sys.info()
                                      sysname 
                                      "Linux" 
                                      release 
                          "2.6.32-26-generic" 
                                      version 
"#48-Ubuntu SMP Wed Nov 24 09:00:03 UTC 2010" 

【讨论】:

还有R.version$osSys.info() 更适合测试。 @Richie 你能详细说明为什么 Sys.info() 更好吗? R.version 的帮助页面显示“不要使用 R.version$os 测试代码运行的平台:请改用 .Platform$OS.type。”烦人的是,它没有提到Sys.info() 的适用性。【参考方案3】:

我不确定是否使用Sys.info(),因为帮助页面显示它并非在所有 R 平台上都实现;也许改用.Platform?.Platform 有很多有用的信息,因为:

‘.Platform’是一个列表,里面有一些 R所在平台的详细信息 被建。这提供了手段 编写可移植操作系统的 R 代码。

R 中包含的包似乎也比Sys.info 更频繁地使用.Platform

josh: /c/R/R-2.12.0-src/src/library
> grep ".Platform" */R/* | wc -l
144
josh: /c/R/R-2.12.0-src/src/library
> grep ".Platform\$OS.type" */R/* | wc -l
99
josh: /c/R/R-2.12.0-src/src/library
> grep "Sys.info" */R/* | wc -l
4

【讨论】:

【参考方案4】:

由于Sys.info().Platform$OS.type 会根据运行的操作系统产生不同的结果,因此我进行了更多搜索,并在https://www.r-bloggers.com/identifying-the-os-from-r/ 找到了以下函数

get_os <- function()
  sysinf <- Sys.info()
  if (!is.null(sysinf))
    os <- sysinf['sysname']
    if (os == 'Darwin')
      os <- "osx"
   else  ## mystery machine
    os <- .Platform$OS.type
    if (grepl("^darwin", R.version$os))
      os <- "osx"
    if (grepl("linux-gnu", R.version$os))
      os <- "linux"
  
  tolower(os)

【讨论】:

以上是关于检测 R 中的操作系统(例如,用于自适应 .Rprofile 文件)的主要内容,如果未能解决你的问题,请参考以下文章

MGADA | 用于目标检测的多粒度对齐域自适应

Domain Adaptive Faster R-CNN:经典域自适应目标检测算法,解决现实中痛点,代码开源 | CVPR2018

ZoomNet 解读局部感知自适应缩放神经网络的三维目标检测

ZoomNet 解读局部感知自适应缩放神经网络的三维目标检测

论文泛读134用于情感原因提取的多任务学习和自适应知识模型

60-R语言中的神经网络