【问题标题】:R .Library and libpaths() returns different resultR .Library 和 libpaths() 返回不同的结果
【发布时间】:2020-02-17 03:45:58
【问题描述】:

libpaths() 返回有效结果:

"D:/R/R-3.3.3/library"

但是 .Library 返回的结果无效:

"D:/R/R-33~1.3/library"

这是预期的吗?

【问题讨论】:

  • ?.libPaths(讨论了.Library 和我推断你的意思是.libPaths(),因为我的R-3.5.3 中没有libpaths)。该路径可能看起来无效,但有时在 Windows 上,某些路径需要编码为各种 8 字符映射。在我看来就是这样(虽然我的 win10 系统没有表现出相同的症状)。

标签: r system


【解决方案1】:

它们应该是相同的

但是在 Windows 中,您不能直接使用 .Library 的值来定位文件夹。

但是当我使用 libpaths 和 .Library 创建文件夹时,结果位于同一个文件夹中~

因为我认为这很有帮助,所以我在这里发布我自己问题的答案。

【讨论】:

    【解决方案2】:

    使用 Mac 我也有两种不同的路径:

    .Library
    # [1] "/Library/Frameworks/R.framework/Resources/library"
    
    .libPaths()
    # [1] "/Library/Frameworks/R.framework/Versions/3.6/Resources/library"
    

    文档对.Library 有这样的说法(重点是我的):

    .Library 是一个字符串,给出了默认库的位置,即 R_HOME 的“library”子目录。

    关于.libPaths()(强调我的):

    .libPaths 用于获取或设置R 知道的库树(因此在查找包时使用)。

    实际上,两个路径通过不同的路由指向同一个目录,因为第一个路径中的Resources 是指向第二个路径中相同Resources 的别名。主要区别在于第二个路径中的Versions 包含不同版本的多个目录(即所谓的“R 所知道的库树”)。 3.6 版目前是我的默认库,这就是为什么.Library 也指向它。我假设同样的逻辑也适用于 Windows。

    【讨论】:

    • 首先感谢您的详细回答,您确定这两个路径指向同一个文件夹吗?在我的 win10 系统中,我无法使用路径 .Library 给我,系统告诉我 win10 系统中不存在路径
    • 当我尝试进入 D:/R/R-33~1.3/library 时系统告诉我 windows 找不到路径
    • @cloudscomputes 是的,他们肯定会。当我手动导航到查找器中的每个库并复制它们的路径时,它们是相同的。此外,如果我在一个路径中创建一个文件夹,它也会出现在另一个路径中。也许 R for Windows 不知道如何处理快捷方式/别名?
    猜你喜欢
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    • 1970-01-01
    • 2020-02-15
    • 2021-09-21
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多