【问题标题】:R namespaces: how to get imports packages when installing and loading R packages from fresh R install.R 命名空间:从全新的 R 安装中安装和加载 R 包时如何获取导入包。
【发布时间】:2015-06-10 07:19:16
【问题描述】:

我在新的 Win7 x64 上设置了新的 R 和 RStudio。当我想安装和加载包(从 RStudio 中)时,似乎会弹出似乎与包命名空间导入指令相关的错误。例如尝试加载 ggplot2 时缩放(中间有一些丹麦语):

> install.packages('ggplot2')
Installing package into ‘C:/Users/me/Documents/R/win-library/3.1’
(as ‘lib’ is unspecified)
trying URL 'http://cran.rstudio.com/bin/windows/contrib/3.1/ggplot2_1.0.1.zip'
Content type 'application/zip' length 2675576 bytes (2.6 MB)
opened URL
downloaded 2.6 MB

package ‘ggplot2’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
    C:\Users\me\AppData\Local\Temp\RtmpodrNFq\downloaded_packages
> library(ggplot2)
Error in get(Info[i, 1], envir = env) : 
  cannot open file 'C:/Users/me/Documents/R/win-library/3.1/scales/R/scales.rdb': No such file or directory
Error: indlæsning af pakke eller navnerum fejlede for ‘ggplot2’

我是否需要为包缩放(以及所有其他缺失的包)执行“install.packages()”,或者当您安装全新的 R 时,是否有办法让这更自动化。

当然,我不了解包命名空间的概念,并尝试阅读其他 SO 问题,如thisthis - 最终冒着重复问题的风险。

【问题讨论】:

    标签: r namespaces install.packages


    【解决方案1】:

    如果您查看您看到的说明文件:

    Depends: R (>= 2.14), stats, methods
    Imports: plyr (>= 1.7.1), digest, grid, gtable (>= 0.1.1), reshape2,
            scales (>= 0.2.3), proto, MASS
    

    因此,您可能会看到未安装 scales 软件包的副作用。您可以使用文件浏览器或执行以下命令查看说明文件:

     help(pac=ggplot2)   # and click on the DESCRIPTION file link at the top of that page.
    

    【讨论】:

    • 是的,我认为我没有 Imports 中提到的包(因为它是全新的 Windows 和 R 安装)。而且我还认为我需要安装它们。我的问题是这是否应该使用 import.packages() 手动完成所有丢失的“进口包”?
    • 如果你执行了install.packages('ggplot2', dependencies=TRUE),你可能已经避免了这个问题。我通常只设置一个库,所以对我来说,事情应该去哪里是没有歧义的,但你可能需要指定一个 'lib' 参数,因为你收到了那个警告。
    • 但是,我不知道如何在使用 RStudio 时仅将 .libPaths() 指定到一个位置。似乎 RStudio 坚持在“C:/Users/me/Documents/R/win-library/3.1”和“C:/Program Files/R/R-3.1.3/library”目录中都有库。如何更改此行为(尝试在 .Rprofile 中指定 .libPaths() - 无效。
    • 不就是install.packages('ggplot2', lib=.libPaths()[2], dependencies=TRUE)吗? (如果 C:/User/ libPath 是第一个,那么您可以将 2 换成 1。)
    • 这是一个非常好的解决方法。非常直观 - 我肯定会接受的
    猜你喜欢
    • 2018-04-27
    • 1970-01-01
    • 2012-06-04
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多