在superuser上询问,得到了蟋蟀,所以在这里尝试。这一个似乎跨越了SU/SO的边界。
尝试在同事的Windows 10计算机上Knit.Rmd时,R配置问题导致了pandoc转换失败。在解决该问题时,我注意到.libPaths()
中的第一个路径指向网络目录上的路径,而不是c:/Users/[username]/R/win-library/...
目录。
在R中运行Sys.getenv()
显示HOMEDRIVE
和HOMEPATH
是(如预期的那样)c:
和\Users\[username]
,但是列出了一个HOME
环境变量,该变量指向我们在.libPaths()
中找到的网络路径
在cmd shell中运行SET
根本没有列出这个HOME
环境变量,所以它似乎是R在其他地方找到的东西...
R从哪里得到这个HOME
环境变量?
FWIW:我通过设置Windows用户环境变量HOME=%HOMEDRIVE%%HOMEPATH%修复了配置问题; R然后从那里适当地设置所有其他环境变量。
2条答案
按热度按时间iyr7buue1#
R startup有点复杂,但是有很好的文档记录,通常的起始位置是
help("Startup")
,这里没有文档记录你的问题的答案,但是你可以在 * 另请参阅 * 部分找到这个线索:有关Windows上“home”目录的定义,请参见“rw-FAQ”Q2.14。它可以从运行的R by Sys.getenv(“R_USER”)中找到
事实上,www.example.com上引用的FAQhttps://cran.r-project.org/bin/windows/base/rw-FAQ.html#What-are-HOME-and-working-directories_003f给了我们答案:
主目录设置如下:如果设置了环境变量R_USER,则使用它的值。否则,如果设置了环境变量HOME,则使用它的值。在这两个用户可控制的设置之后,R尝试查找系统定义的主目录。它首先尝试使用Windows的“个人”目录(通常为C:\Users\username\Documents)。如果失败,如果同时设置了环境变量HOMEDRIVE和HOMEPATH(通常是这样),则值为${HOMEDRIVE}${HOMEPATH}。如果所有这些都失败,则使用当前工作目录。
9rygscc12#
您可能想看看the here package,以及与knitr相关的the ezknitr package.。此外,在RStudio中,您可以在knit菜单中指定是否在当前目录、工作目录或项目目录as shown here中进行编织。
更新:让我在这里重申一下投票失败后的信息:在一个典型的使用场景中,你不需要修改HOME环境变量。使用一个合适的工作流(例如RStudio项目或here包)是一个更健壮和可移植的解决方案。