R 包中的对象存储在哪里?
Where are objects stored in R packages?
我正在重构另一个作者(我公司的前雇员)的 R 包。作者在 roxygen2
示例中使用了多个显然存储在包中某处的变量。它们可以通过 pkgname:::bar
访问。我在整个包中重命名了其中一些变量以提高命名一致性,假设变量现在被称为 foo
而不是 bar
,但是示例不再是 运行 devtools::check()
。错误:Error in get(name, envir = asNamespace(pkg), inherits = FALSE) : object 'foo' not found
。但是,我找不到它们的定义位置。 data
文件夹中没有将被命名为 bar
的对象,并且在所有文件(在 RStudio 和 Windows Explorer 中)中搜索变量名称不会显示任何内容。然而,pkgname:::bar
仍然有效。我应该在哪里寻找任何想法 bar
?
变量也可以在包的普通 R 脚本中使用 foo <- new.env()
创建,然后用内容填充,例如
foo <- new.env()
foo <- data.frame(
x=1:10,
y <- rnorm(10)
)
也可以隐藏内部数据,例如.foo
。例如,CRAN 包 marelac 在文件 aaa.R
、gas_schmidt.R
和其他一些文件中使用了这种机制。
另一种可能性是可以将文件 sysdata.rda
放在 /R
文件夹中,请参阅:https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Package-subdirectories
我正在重构另一个作者(我公司的前雇员)的 R 包。作者在 roxygen2
示例中使用了多个显然存储在包中某处的变量。它们可以通过 pkgname:::bar
访问。我在整个包中重命名了其中一些变量以提高命名一致性,假设变量现在被称为 foo
而不是 bar
,但是示例不再是 运行 devtools::check()
。错误:Error in get(name, envir = asNamespace(pkg), inherits = FALSE) : object 'foo' not found
。但是,我找不到它们的定义位置。 data
文件夹中没有将被命名为 bar
的对象,并且在所有文件(在 RStudio 和 Windows Explorer 中)中搜索变量名称不会显示任何内容。然而,pkgname:::bar
仍然有效。我应该在哪里寻找任何想法 bar
?
变量也可以在包的普通 R 脚本中使用 foo <- new.env()
创建,然后用内容填充,例如
foo <- new.env()
foo <- data.frame(
x=1:10,
y <- rnorm(10)
)
也可以隐藏内部数据,例如.foo
。例如,CRAN 包 marelac 在文件 aaa.R
、gas_schmidt.R
和其他一些文件中使用了这种机制。
另一种可能性是可以将文件 sysdata.rda
放在 /R
文件夹中,请参阅:https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Package-subdirectories