我在Windows下使用R在几台机器上。
我知道你可以在R脚本中设置工作目录,比如
setwd("C:/Documents and Settings/username/My Documents/x/y/z")
...但是这会破坏脚本的可移植性。必须反转所有斜杠(因为Windows为你提供反斜杠)也很烦人。
有没有办法在特定的工作目录中启动R,这样你就不需要在脚本级别执行此操作了?
答案 0 :(得分:15)
您应该将快捷方式复制到R(R.lnk文件)到欲望文件夹。然后在“属性”(鼠标右键 - >最后一个选项)中删除第二个选项卡(“快捷方式”?)中“开始...”字段中的任何内容。如果使用此快捷方式启动R,则工作目录将是快捷方式所在的目录。
我没有英文版的Windows,所以我不确定字段名称,但它们应该很容易找到。
类似的问题出现在R-windows-faq中:
2.10 How can I keep workspaces for different projects in different directories?
2.14 What are HOME and working directories?
在2.14中提到
工作目录是启动Rgui或Rterm的目录,除非在快捷方式属性的“开始”字段中给出了快捷方式。
答案 1 :(得分:6)
您可以使用环境变量。这适用于Sys.getenv()
和Sys.setenv()
。例如:
> Sys.setenv(R_TEST="testit")
> Sys.getenv("R_TEST")
R_TEST
"testit"
如果您在脚本中发送了变量,则应该可以从内部访问该变量,然后在该输出上调用setwd()
。
答案 2 :(得分:5)
将工作区保存到所需目录,然后只需从Windows资源管理器中打开工作区。
答案 3 :(得分:4)
我将以下行放在我的脚本前面,它允许我在我的计算机上工作。
setwd(path.expand("~/path/to/working/directory/") )
其中〜是=到您的主目录。
Sys.setenv(HOME = "path")
或Sys.setenv(R_USER = "path")
都可以设置主目录。
在我的情况下,我在几个窗口框上工作,每个窗口框都有相当不同的目录结构,但通过正确设置主目录,我可以在计算机之间同步代码,并让它们在每一个上正确运行,因为我运行我的R项目有类似的目录结构。
答案 4 :(得分:3)
如果您使用的是Emacs / ESS,这不是问题。我导航到我的R脚本所在的目录,打开它,然后启动R ESS过程。一个R控制台弹出当前目录作为R的工作目录。
如果您尚未转换为Emacs / ESS,我推荐它。 (虽然为防止火焰战,我也注意到Vi用户也有类似的选择。)
希望有所帮助。
答案 5 :(得分:3)
只是一个细节:而不是像你说的那样反转斜杠,只需添加另一个反斜杠。其中两个\\的工作方式与其中一个/相同。这使得它至少更容易一些。
答案 6 :(得分:2)
对于Ubuntu:
将以下命令插入.Rprofile
文件(通常位于主目录中):
setwd(Sys.getenv("PWD"))
现在,您的默认工作目录将是您从中启动R的目录。请记住,您还可以在.RData
中将工作区图像保存为.Rprofile
,以便在.Rdata
中搜索cwd
之前将工作区图像保存为{{1}},从而设置默认工作区。 1}})。
答案 7 :(得分:0)
要将R工作目录设置为我正在使用的R脚本的当前目录,我总是使用命令getwd()
和setwd()
的组合,如下所示:
path <- getwd()
setwd(path)
或
setwd(getwd())
如果您想了解有关它的更多信息,请参阅此article。
干杯,
[]&#39; S
答案 8 :(得分:0)
在 R Studio 中设置工作目录: 请参阅带有屏幕截图的详细幻灯片here。
在 R Studio 中设置永久工作目录(不在项目中时): 参考我的快速视频:https://youtu.be/hMjzO4bAi70
转到工具 --> 全局选项 --> R 常规 [基本] --> 默认工作目录(不在项目中时) 浏览您要设置为工作目录的文件夹,单击“应用”和“确定”
但是,组织您的工作的有效且更好的方法是创建项目并使用版本控制。
答案 9 :(得分:-1)
将R gui的快捷方式放入所需目录。右键单击并查看快捷方式属性。删除“开始”的条目,然后单击“确定”。从此快捷方式启动R gui时,默认目录将是您已启动的文件夹。将此快捷方式复制/粘贴到您想要的任何位置。