【发布时间】:2018-10-18 08:53:10
【问题描述】:
我有一个简单的问题,我找不到简单的解决方案。我正在将 R 用于数据分析管道,并且我想将输出路径设置为全局变量。然后,各种功能应使用它来保存表格和绘图。我想避免将这个路径变量传递给每个函数。所以我所做的如下:
outpath <- "../results/"
function1 <- function(){
... # analysis
write.table(result, file = paste0(outpath,"/function1results.xls"))
}
如果我在 Rstudio 中使用工作环境中的 outpath 变量调用 function1(),这运行良好。但是,如果我想使用“Rscript”在另一个工作站上运行整个脚本,我会收到以下错误:
as.vector(x, "character") 中的错误:
无法将类型“闭包”强制转换为“字符”类型的向量
我假设我搞砸了 R 处理环境的方式。也许有人比我更了解:)
编辑:我在本地机器上运行 windows 而工作站运行 linux 可能很有趣。
【问题讨论】:
-
该错误(来自
paste0())告诉您outpath未在环境中定义。即它丢失了,或者不在全局环境中,或者你在函数中使用了错误的变量名。 -
加上@hrbrmstr 所说的,您的
paste0将产生“../results//function1results.xls”。您的路径可能实际上没有双斜杠