检测哪台计算机I';我正在运行一个R脚本

检测哪台计算机I';我正在运行一个R脚本,r,rstudio,R,Rstudio,我正在寻找一个R函数来返回脚本正在运行的计算机的标识符,或者至少用来区分两台已知计算机中的一台 我有两台电脑,都运行Windows和RStudio。我使用办公室的台式机和VPN上的笔记本电脑,通常在同一个项目上工作,总是使用RStudio 我的脚本和永久数据集位于commmon存储库中。但是,由于该存储库的I/O速度很慢,我为临时文件保留了一个本地目录 在桌面上,我有一个专用驱动器,每个项目都位于其文件夹'D:/workspace/this\u project/'中。在笔记本电脑上,路径是'C:

我正在寻找一个R函数来返回脚本正在运行的计算机的标识符,或者至少用来区分两台已知计算机中的一台

我有两台电脑,都运行Windows和RStudio。我使用办公室的台式机和VPN上的笔记本电脑,通常在同一个项目上工作,总是使用RStudio

我的脚本和永久数据集位于commmon存储库中。但是,由于该存储库的I/O速度很慢,我为临时文件保留了一个本地目录

在桌面上,我有一个专用驱动器,每个项目都位于其文件夹
'D:/workspace/this\u project/'
中。在笔记本电脑上,路径是
'C:/Users/imf/Documents/workspace/this\u project/'
或只是
'~/workspace/this\u project/'

目前,我在每个脚本的顶部保留了两个
setwd()
语句,我只依赖其中一个语句会因为文件结构而失败这一事实

setwd('~/workspace/this_project') # will fail on the desktop
setwd('D:/workspace/this_project') # will fail on the laptop
这似乎是个坏习惯

我已经浏览了
?“环境变量”
,但没有看到如何在网络上获取我的计算机名或其他持久且唯一的计算机名

所需的解决方案可以将笔记本电脑的瓷砖扩展修改为笔记本电脑上的
D://
,这样就可以使用一个通用的“~/workspace/”或一个函数
,使用\u laptop()
,如下所示:

set_project_wd <- function(folder_nm){
  if(using_laptop()) setwd(paste0('~/workspace/',folder_nm))
  else setwd(paste0('D:/workspace/',folder_nm))
}
set\u project\u wd如果调用
Sys.info()
您可以获得详细信息:

names(Sys.info())
[1] "sysname"        "release"        "version"        "nodename"       "machine"        "login"         
[7] "user"           "effective_user"
nodename
下的条目将是您的电脑名

然后,您可以执行以下操作:

set_project_wd <- function(folder_nm){
  if(Sys.info()[[4]]=="mylaptopname") setwd(paste0('~/workspace/',folder_nm))
  else setwd(paste0('D:/workspace/',folder_nm))
}

set\u project\u wd
Sys.info()!我已经检查了
sessionInfo
?Sys.info
链接也可以查看
sessionInfo
,但不幸的是,不是相反。这也有助于记录用户。好企鹅。当在windows上工作时,它工作得很好。在Mac上,当通过VPN连接到我的大学时,节点名会发生变化。