Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R.libPaths()RStudio和命令行R之间的差异_R_Rstudio - Fatal编程技术网

R.libPaths()RStudio和命令行R之间的差异

R.libPaths()RStudio和命令行R之间的差异,r,rstudio,R,Rstudio,当我从命令行运行R时: > library(ggplot2) ... > path.package('ggplot2') [1] "/home/yang/R/x86_64-pc-linux-gnu-library/2.13/ggplot2" > .libPaths() [1] "/home/yang/R/x86_64-pc-linux-gnu-library/2.13" [2] "/usr/local/lib/R/site-library" [3

当我从命令行运行R时:

> library(ggplot2)
...
> path.package('ggplot2')
[1] "/home/yang/R/x86_64-pc-linux-gnu-library/2.13/ggplot2"
> .libPaths()
[1] "/home/yang/R/x86_64-pc-linux-gnu-library/2.13"
[2] "/usr/local/lib/R/site-library"                
[3] "/usr/lib/R/site-library"                      
[4] "/usr/lib/R/library"                           
> Sys.getenv('R_LIBS_USER')
[1] "~/R/x86_64-pc-linux-gnu-library/2.13"
(注意:当我从shell中检查时,该环境变量实际上并不存在。)

但从运行在同一机箱上的RStudio服务器,以同一用户身份登录后:

> path.package('ggplot2')
[1] "/home/yang/R/library/ggplot2"
> .libPaths()
[1] "/home/yang/R/library"              "/usr/local/lib/R/site-library"    
[3] "/usr/lib/R/site-library"           "/usr/lib/R/library"               
[5] "/usr/lib/rstudio-server/R/library"
> Sys.getenv('R_LIBS_USER')
[1] "/home/yang/R/library"

你能解释一下为什么默认情况下这些是不同的吗?这是RStudio定制吗?(为什么?)


因此,RStudio似乎使用自己的libs,设置在/etc/RStudio/rsession.conf中。为什么?谁知道呢。

从消息来源直接回答:

你好

是的,我们有一个自定义的R_LIBS_用户设置,旨在使其 更容易将服务器升级到新版本的R,而无需 每个用户重命名其库目录和/或重新构建其 包装。这样管理员就可以进行升级而不必担心 他们会破坏用户的工作环境(意识到 也可以通过编写执行以下操作的升级脚本来完成 为每个用户进行必要的重命名/重新生成)

完全同意这并非在所有情况下都是可取的。在这里 您可以做些什么来解决这个问题:

Rtudio服务器R_LIBS_用户由以下设置控制 在/etc/rstudio/rsession.conf中:

r-libs-user=~/R/library
此变量支持与R_LIBS_USER相同的通配符(如 此处描述: ) 因此,您可以将其更改为以下内容,以使RStudio的行为正常 像控制台R:

r-libs-user=~/R/%p-library/%v
(注意,我认为这是复制目录的正确语法 显示在您的输出上面,但你肯定要仔细检查 (即)

希望这会把事情弄清楚,并且您可以将事情配置为 你会喜欢的。如果您还有其他问题,请告诉我们,如果没有 按描述工作

J.J


这些是由具有相同权限的同一用户安装的吗?RStudio是作为Debian软件包安装的,但它使每个用户都可以作为Linux用户进行身份验证,并在其环境中运行。在我的情况下,登录的用户与命令行R用户相同(注意路径中的
/home/yang
)。您是否检查过这些路径中是否有相互的符号链接?是的,它们不是相互的符号链接;它们有不同的内容。我必须在每个环境中分别重新安装所有扩展。JJ Allaire的回答揭示了原因和解决方法。不幸的是,该链接现在说它“关闭”。嘘,嘘。另一个主要答案的链接变得价值最小。