更改path.expand位置(Win 7)

13

目前:

path.expand("~")

给出:

"C:\\Users\\trinker\\Documents"

我希望它产生以下结果:

"C:\\Users\\trinker"

Windows 命令提示符的目录是 C:\Users\trinker,表明这是我的 Windows 主目录。

?path.expand 告诉我查看 rw-FAQ(链接)。这提供了超出我的认知能力的信息。因此我决定尝试如下实验:

> Sys.getenv("R_USER")
[1] "C:\\Users\\trinker\\Documents"
> normalizePath("~")
[1] "C:\\Users\\trinker\\Documents"

> Sys.getenv("R_USER") <- "C:\\Users\\trinker"
Error in Sys.getenv("R_USER") <- "C:\\Users\\trinker" : 
  target of assignment expands to non-language object
> normalizePath("~") <- "C:\\Users\\trinker"
Error in normalizePath("~") <- "C:\\Users\\trinker" : 
  target of assignment expands to non-language object 

我看到:

Sys.setenv(...)
Sys.unsetenv(x)

但是我害怕自己盲目地搞砸了一些事情,决定寻求指导。

所以我想让~再次表示C:\\Users\\trinker\\(这是我上一台电脑的默认设置),而不是现在的C:\\Users\\trinker\\Documents

3个回答

12

为了持久性地重置所有用户解析为"~"的目录,请将以下内容放入文件Renviron.site中,该文件位于$RHOME/etc/Renviron.site

R_USER="C:/Users/trinker"

(如果该文件不存在,您可以自己创建它。)


如果一台计算机支持多个R用户,并且每个用户都想设置自己的R_USER位置,则每个用户都可以将以下内容放在自己的".Rprofile"文件中:

Sys.setenv(R_USER = "C:/Users/trinker")

在用户主目录中查找".Rprofile"文件,可以通过输入Sys.getenv("HOME")来获取主目录路径。有关更多详细信息,请参阅?StartupR for Windows FAQ

(感谢@Dason指出了.Rprofile选项。)


@GSee -- 谢谢。我只是打错了,你正好在我发现之前就发现了。 - Josh O'Brien
5
将其放入Renviron.site会影响计算机上的所有用户,对吗?虽然我相当确定 Tyler 是唯一在他的计算机上使用R的人,但这似乎还不够好。在.Rprofile中添加Sys.setenv调用是否更好?在.First中加入Sys.setenv(R_USER = "C:/Users/trinker")应该可以解决问题。 - Dason
@Dason -- 是的,如果你在一台电脑上有多个R用户,那么这是更好的解决方案。感谢你指出这一点。 - Josh O'Brien
1
第一个选项对我来说不起作用,而.Rprofile却可以。我猜这是因为我有一个我使用的.Rprofile文件,并且R在搜索Renviron.site之前会先使用我的工作目录中的这个文件。向Dasona和Josh表示感谢。 - Tyler Rinker
@TylerRinker -- 或者类似的东西。?Startup表示在读取任何.Rprofile文件之前,会首先读取Renviron.site(因此.Rprofile中的设置可以覆盖Renviron.site中的设置)。无论如何,很高兴这对您有用。 - Josh O'Brien

0

另一个选项是更新您用于启动新的R会话的快捷方式中的“目标”字符串。为此,请右键单击图标,然后从上下文菜单中选择“属性”。选择对话框的“快捷方式”选项卡,并将以下名称/值对之一添加到target字段中。

R_USER="c:\my\favorite\folder"
R_USER="%USERPROFILE%"

现在path.expand("~")将扩展为c:\my\favorite\folderc:\users\my name\

几个注意事项:

  • 这也会改变R查找用户文件(如.RprofileRconsole和用户包库)的位置。
  • 如果您已将R固定到任务栏,则需要右键单击任务栏图标以查找从任务栏启动R的快捷方式图标(如下图所示):

enter image description here


0

我们的系统管理员已经设置了系统,使得path.expand("~")或normalizePath("~")总是指向一个映射驱动器(\...)。在由path.expand("~")指向的文件夹中创建一个".Renviron"文件,并填写以下内容可以解决我的问题 :)

R_USER="C:/Users/animeshs"
HOME="C:/Users/animeshs"

所以现在

path.expand("~")

[1] "C:/Users/animeshs"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接