2

考虑以下两行:

Sys.setenv(R_IMPORT_PATH = "/path/to/my/r_import")
foo <- modules::import("foo")

如果我从已经建立的交互式 R 会话中执行此代码,它工作正常。

但是,如果我将相同的两行放入我的.Rprofile并开始一个新的交互式 R 会话,则该modules::import行将失败并显示

Error in module_init_files(module, module_path) : 
  could not find function "setNames"

如果我然后尝试以下修复/破解

Sys.setenv(R_IMPORT_PATH = "/path/to/my/r_import")
library(stats)
foo <- modules::import("foo")

...然后该modules::import行仍然失败,但具有以下内容

Error in lapply(x, f) : could not find function "lsf.str"

因此,修补缺失名称的想法似乎将是一场无法维持的噩梦……


关键问题是这样的:交互式搜索会话开始后的搜索路径似乎与.Rprofile脚本看到的不同。

Q1:有没有一种方法可以告诉 R 使搜索路径>与交互式会话中出现第一个提示时完全一样?

Q2:或者,有没有办法.Rprofile安排一些代码在会话的默认搜索路径到位后运行?


注意:解决方案如下:

Sys.setenv(R_IMPORT_PATH = "/path/to/my/r_import")
library(stats)
library(utils)
foo <- modules::import("foo")

...每次修改(第三方)modules软件包时都有可能中断。

4

0 回答 0