设置所有函数用于将文件保存到R的全局路径变量
我有一个简单的问题,我找不到简单的解决办法。我将R用于数据分析管道,我希望将输出路径设置为全局变量。然后,各种函数都应使用此选项保存表格和绘图。我希望避免将这个path变量传递给每个函数。因此,我所做的是:设置所有函数用于将文件保存到R的全局路径变量,r,file,output,rscript,R,File,Output,Rscript,我有一个简单的问题,我找不到简单的解决办法。我将R用于数据分析管道,我希望将输出路径设置为全局变量。然后,各种函数都应使用此选项保存表格和绘图。我希望避免将这个path变量传递给每个函数。因此,我所做的是: outpath <- "../results/" function1 <- function(){ ... # analysis write.table(result, file = paste0(outpath,"/function1results.xls"))
outpath <- "../results/"
function1 <- function(){
... # analysis
write.table(result, file = paste0(outpath,"/function1results.xls"))
}
outpath将输出路径放入函数中
outpath <- "../results/"
function1 <- function(out){
... # analysis
write.table(result, file = paste0(out,"/function1results.xls")
}
function1(outpath)
outpath将输出路径放入函数中
outpath <- "../results/"
function1 <- function(out){
... # analysis
write.table(result, file = paste0(out,"/function1results.xls")
}
function1(outpath)
outpath相对路径会导致灾难,尤其是当R脚本不是从所有系统上完全相同的位置运行时
如果您确定-100%确定-此脚本将始终从一致的位置运行,那么您可以放置:
outpath_prefix <- "../results/"
阅读该函数的帮助页(?file.path
),特别是针对此gem:
该实现被设计为快速(比粘贴更快),因为该函数在R本身中被广泛使用
然而
考虑使用“项目”概念,并在此处安装
软件包
使用适当的“项目”(即RStudio定义的标准),在项目根目录中放置“项目名称.Rproj
”,或者在项目根目录中创建其中一个文件(它们可以为空):
- `.here`
- `.projectile`
或者对项目使用版本控制(这总是一个好主意),并确保.git
文件位于项目的根目录中
然后你可以做:
outpath_prefix <- here::here("results")
为输入/输出获取与平台无关、不易出错且生成速度更快的路径规范。相对路径会导致灾难,尤其是当R脚本不是在所有系统上从完全相同的位置运行时
如果您确定-100%确定-此脚本将始终从一致的位置运行,那么您可以放置:
outpath_prefix <- "../results/"
阅读该函数的帮助页(?file.path
),特别是针对此gem:
该实现被设计为快速(比粘贴更快),因为该函数在R本身中被广泛使用
然而
考虑使用“项目”概念,并在此处安装
软件包
使用适当的“项目”(即RStudio定义的标准),在项目根目录中放置“项目名称.Rproj
”,或者在项目根目录中创建其中一个文件(它们可以为空):
- `.here`
- `.projectile`
或者对项目使用版本控制(这总是一个好主意),并确保.git
文件位于项目的根目录中
然后你可以做:
outpath_prefix <- here::here("results")
为输入/输出获取与平台无关、不易出错且生成的路径规格更快。这确实有效,但我试图避免这种情况。我想使用一个全局变量,这个变量应该可以从函数内部访问。如果你真的必须这样做,你可以尝试使用,它确实有效,但我试图避免这种情况。我想使用一个全局变量,它应该可以从函数内部访问。如果你真的必须这样做,你可以尝试使用,我知道可能存在的问题。但是,我正在使用脚本中创建的文件夹的相对路径。无论我在哪里运行脚本,这都不会改变。我将试用file.path函数。编辑:file.path()中出错:缺少参数“outpath\u prefix”,没有default@hrbrmstr,我们如何修改它,只设置输出路径,而不设置名称?由于某些函数已经有了要保存的预定义文件名,最具体地说,就是使用homogen和DAILY2CLIMICOL函数的“climatol”包中的函数。在文档中,没有包含用于指定输出路径的参数。很抱歉,如果这听起来很无聊,我来自python,只在这个特定的包中使用R,无法理解。我知道可能存在的问题。但是,我正在使用脚本中创建的文件夹的相对路径。无论我在哪里运行脚本,这都不会改变。我将试用file.path函数。编辑:file.path()中出错:缺少参数“outpath\u prefix”,没有default@hrbrmstr,我们如何修改它,只设置输出路径,而不设置名称?由于某些函数已经有了要保存的预定义文件名,最具体地说,就是使用homogen和DAILY2CLIMICOL函数的“climatol”包中的函数。在文档中,没有包含用于指定输出路径的参数。很抱歉,如果这听起来很无聊,我来自python,只对这个特定的包使用了R,无法理解。这个错误(来自paste0()
)告诉您环境中没有定义outpath
。i、 e.它缺失,或者不在全局环境中,或者您在函数中使用了错误的变量名。再加上@hrbrmstr所说的,您的paste0
将产生“./results//function1results.xls”。很可能您的路径实际上没有双斜杠,该错误(来自paste0()
)告诉您环境中未定义outpath
。i、 e.它缺失,或者不在全局环境中,或者您在函数中使用了错误的变量名。再加上@hrbrmstr所说的,您的paste0
将产生“./results//function1results.xls”。很可能您的路径实际上没有双斜线