gpt4 book ai didi

r - 什么是永久设置 R 工作目录的万无一失的方法?

转载 作者:行者123 更新时间:2023-12-04 11:54:01 26 4
gpt4 key购买 nike

关于如何更改 R 中的默认工作目录有很多信息(每次启动 R 或 RStudio 时,工作目录都会变回默认值,因此每次都必须运行 setwd())。在 RStudio 中,Tools>Global Options>General 中有一个相关选项。其他解决方案似乎涉及编辑 Rprofile.site 文件。但是,所有这些都要求用户能够找到 Rprofile 并对其进行编辑,或浏览设置,并且始终不会搞砸。

我需要的是为不知道如何做到这一点的傻瓜学生提供解决方案。有人可能会说自定义环境是一种很好的做法,但这是一个非常短的类(class),我希望它对观众中的计算机文盲灵魂尽可能无痛。

我已经编写了一个脚本,用于下载类(class)所需的所有包,在 RStudio 中加载脚本,下载并加载包含数据和函数的工作区。他们只需要在安装 R+RStudio 后运行一次。有那么一刻,我认为这将是一个好主意:

cat("setwd(\"the desired working directory\")", file=file.path(Sys.getenv("R_HOME"), "etc", "Rprofile.site"), append=T)

...但这会引发权限被拒绝,至少在 Windows 下(我猜程序文件是 protected )。
所需的解决方案应该是独立于平台的(其中大多数有 Windows,但有些可能有 Mac 或 Linux)。但最重要的是,它应该只包括在控制台中粘贴脚本并按 Enter 键,没有什么更复杂的(因此是标题的万无一失的部分)。

最佳答案

怎么样的东西

set_default_wd <- function(wd = getwd()) {
text <- paste0(
'local({ setwd("', wd, '") })')
##
if (Sys.info()["sysname"] == "Windows") {
write(
text,
file = paste0(Sys.getenv("HOME"), "\\.Rprofile"),
append = TRUE)
} else {
write(
text,
file = paste0(Sys.getenv("HOME"), "/.Rprofile"),
append = TRUE)
}
}
##
#R> set_default_wd() #set_default_wd("some/file/path")

这应该适用于 Windows 和类 Unix 系统,并避免任何权限问题。实际上,用户端的唯一要求是指定一个有效的文件路径,他们应该(希望)能够解决这个问题。

选择覆盖 $HOME/.Rprofile 可能是值得的。 (而不是强制附加行)以防给出格式错误的文件路径等...
set_default_wd <- function(wd = getwd(), overwrite = FALSE) {
text <- paste0(
'local({ setwd("', wd, '") })')
##
if (Sys.info()["sysname"] == "Windows") {
write(
text,
file = paste0(Sys.getenv("HOME"), "\\.Rprofile"),
append = !overwrite)
} else {
write(
text,
file = paste0(Sys.getenv("HOME"), "/.Rprofile"),
append = !overwrite)
}
}

关于r - 什么是永久设置 R 工作目录的万无一失的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31433559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com