我经常发现自己编写的R脚本会产生大量的输出.我发现把这个输出放到它自己的目录中更干净.我在下面写的内容将检查目录是否存在并移入其中,或创建目录然后移入其中.有没有更好的方法来解决这个问题?
mainDir <- "c:/path/to/main/dir"
subDir <- "outputDirectory"
if (file.exists(subDir)){
setwd(file.path(mainDir, subDir))
} else {
dir.create(file.path(mainDir, subDir))
setwd(file.path(mainDir, subDir))
}
Run Code Online (Sandbox Code Playgroud) 我有一个名为的脚本foo.R
包含另一个脚本other.R
,该脚本位于同一目录中:
#!/usr/bin/env Rscript
message("Hello")
source("other.R")
Run Code Online (Sandbox Code Playgroud)
但我想R
发现other.R
无论当前的工作目录是什么.
换句话说,foo.R
需要知道自己的路径.我怎样才能做到这一点?
有没有办法以编程方式在脚本本身内找到R脚本的路径?
我问这个是因为我有几个脚本使用RGtk2
并从.glade文件加载GUI.
在这些脚本中,我不得不setwd("path/to/the/script")
在开头放置一条指令,否则将找不到.glade文件(位于同一目录中).
这很好,但如果我将脚本移动到另一个目录或另一台计算机,我必须更改路径.我知道,这不是什么大问题,但有一些东西会很好:
setwd(getScriptPath())
那么,是否存在类似的功能?
RStudio有一个有用的功能:
Session -> Set Working Directory -> To Source File Location
Run Code Online (Sandbox Code Playgroud)
有没有办法在不使用下拉菜单的情况下执行此操作?
更新:
也许更好的方式是:
是否有命令返回当前r脚本的文件路径?
我也找到了这个帖子,但解决方案对我没用.甚至不是哈德利!
更多的是一个提示问题,在很多情况下可以节省大量时间。我有一个 script.R 文件,我尝试保存该文件并收到错误:
并非 ~/folder/script.R 中的所有字符都可以使用 ASCII 进行编码。要使用不同的编码保存,请从主菜单中选择“文件 | 使用编码保存...”。
我在这个文件上工作了几个月,今天我疯狂地编辑我的代码,第一次得到这个错误,所以显然我在今天工作时插入了一个无法编码的字符。
我的问题是,我可以跟踪并找到这个特定字符以及文档中的具体位置吗?
我的代码大约有1000行,手动搜索几乎是不可能的。