gpt4 book ai didi

r - 如何在保持代码可移植性的同时存储需要从多个 R 项目访问的数据?

转载 作者:行者123 更新时间:2023-12-04 13:52:50 26 4
gpt4 key购买 nike

如何在保持代码可移植性的同时存储需要从多个 R 项目访问的数据?
从我在 R 中处理的项目中,我可以访问存储在我系统上大约任何位置的数据。但是,如果它位于项目之外的任意位置,则会妨碍代码的可移植性。
我有一些项目,我希望能够在两台不同的机器上使用不同的目录设置。对于可以存储在项目中的数据,这可以正常工作,因为我可以使用诸如将项目设置为 RStudio 项目和使用 here 等工具。包以引用数据的位置。
但是,我有一些数据 (a) 我想在多个项目中使用并且 (b) 非常大。因此,我不想将它复制到我可能使用它的所有项目中。
对于只有我在处理它们的项目,我可以解决这个问题,方法是至少相对于项目设置一致的文件夹结构并使用相对路径。例如,我可以决定将这些多项目数据集存储在项目所在位置的两级数据文件夹中。

shared_data_location <- "../../Data/"
但是,在我与合作者一起进行项目的地方,即使是对他们将代码文件夹和数据文件夹放在哪里也有点强加/假设。

最佳答案

几个想法:

  • 使用包。如果数据不是太大,我认为一个包就可以了。放在 GitHub 上,然后 devtools::install_github("jamse/cool_data")然后 library(cool_data)在 R。
  • 使用环境变量。所以SHARED_DATA="/Users/jamse/shared/Data"可以放入 .Renviron文件。其他用户可能需要选择稍微不同的形式。但是你可以使用 Sys.getenv("SHARED_DATA")在 R 代码中访问它。
  • 使用数据库。这涉及更多开销,但 R 与数据库(尤其是 dplyr )配合得很好。我的计算机上基本上没有可以直接访问的数据文件。一切都在 PostgreSQL 中(正如 Hadley Wickam 所讨论的,PostgreSQL 比类似系统具有更多的功能,但涉及一些设置成本)。如果您使用通常也可以访问数据的其他语言(例如 Python),这会带来很大的返回。
    请注意,如果与其他用户共享,事情可能会变得复杂
    您的 IT 支持有限。但潜在的返回可能会更大(例如,我与其他人共享我的数据库服务器,因此数据变得更容易访问)。
  • 关于r - 如何在保持代码可移植性的同时存储需要从多个 R 项目访问的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67636173/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com