2 回答
TA贡献1871条经验 获得超8个赞
FAQ 6.9:我创建了一个依赖于data.table的包。如何确保我的包是data.table-aware,以便从data.frame继承?
要么i)包含data.table
在Depends:
DESCRIPTION文件的字段中,要么ii)包含data.table
在Imports:
DESCRIPTION文件的字段中和import(data.table)
NAMESPACE文件中。
进一步的背景...在[.data.table
(和其他data.table
功能)的顶部,你会看到一个开关取决于调用的结果cedta()
。这代表呼叫环境数据表感知。打字data.table:::cedta
显示它是如何完成的。它依赖于具有命名空间的调用包,以及该命名空间Import'ing或Depend'ing on data.table
。这是如何data.table
传递给非data.table-aware包(例如函数base
)和那些包可以使用绝对标准的[.data.frame
语法data.table
,幸福地不知道data.frame
is()
a data.table
。
这也是data.table
继承不习惯与无命名空间包兼容的原因,以及为什么在用户请求时我们不得不要求这些包的作者在其包中添加一个名称空间以便兼容。令人高兴的是,现在R为缺少一个(从v2.14.0开始)的软件包添加了一个默认命名空间,这个问题已经消失了:
更改版本2.14.0
*所有软件包都必须具有命名空间,如果源中未提供,则会在安装时创建一个。
- 2 回答
- 0 关注
- 613 浏览
添加回答
举报