RStudio与R的波浪扩展之间的区别

在Windows上的(我的安装)RStudio path.expand("~")返回“C:/ Users / myusername / Documents”。 然而,命令行中的RScript -e path.expand('~')将返回“C:\ Users \ myusername”(与R REPL中的相同)。 这使得在一个环境中使用代字号并且工作的脚本在另一个环境中失败。 一个可能的解决方法是在set R_USER=C:\Users\myusername\Documents运行脚本之前执行set R_USER=C:\Users\myusername\Documents ,但是这看起来像一个set R_USER=C:\Users\myusername\Documents ; 除非我警告他们设置R_USER否则它也可能会让我的脚本的其他用户R_USER 。 我也尝试添加一个条目~/.Renviron但似乎导致RStudio中的“源”button失败。

什么是最好的方式使RStudio和R如何扩大代字号?

正如@Tensibai所建议的那样,不依靠波浪扩展可能是最好的解决方案。 相反,我正在使用以下功能:

 Home <- function() { # Returns a string with the user's home directory # # Serves as a replacement for "~", and works both in RStudio and RScript. # # Returns: # On Windows returns C:/Users/<username>, where <username> is the current user's username. normalizePath(file.path(Sys.getenv("HOMEDRIVE"), Sys.getenv("HOMEPATH")), winslash = .Platform$file.sep) } 

将其扩展到跨平台工作应该是直截了当的。