我的 R 包使用内部变量x
。如果我加载包(我只尝试过使用devtools::load_all
),则x
不会出现在ls()
列表中,但它确实有一个值。我怎样才能避免这种情况?
我很满意用户能够使用 访问变量myPackage::x
,但不简单x
。
我的 R 包使用内部变量x
。如果我加载包(我只尝试过使用devtools::load_all
),则x
不会出现在ls()
列表中,但它确实有一个值。我怎样才能避免这种情况?
我很满意用户能够使用 访问变量myPackage::x
,但不简单x
。
该load_all
函数有一个export_all
参数。
从?load_all
如果为 TRUE(默认值),则导出所有对象。如果为 FALSE,则仅导出在 NAMESPACE 文件中列为导出的对象。
因此,请尝试export_all=FALSE
在您的load_all
通话中使用。
尝试先构建包,并检查问题是否仍然存在。包中的导出在NAMESPACE
文件中定义。使用时devtools::load_all
,不会加载命名空间(请参见此处)。在手册编写 R 扩展中阅读有关此内容的更多信息并构建一个包。
您可能在 NAMESPACE 文件中使用了默认导出模式。检查它在你的包中,如果它看起来像这样:
exportPattern("^[^\\.]")
然后包从命名空间中导出不以点开头的所有内容。因此,您要么调用它.x
,要么将其更改exportPattern()
为例如...
export(myfun1, myfun2)
导出函数myfun1
并myfun2
从包中导出。通过明确定义要导出的内容,您可以避免在不需要时出现可用的内容。