【问题标题】:How to import data.table indexing functionality?如何导入 data.table 索引功能?
【发布时间】:2016-08-23 08:10:01
【问题描述】:

将 data.table 索引功能A[ , , by = ...] 导入我的包的正确方法是什么?

我的 roxygen 文档是否应该包含:

importFrom data.table [.data.table

【问题讨论】:

  • 导入整个data.table包会不会太麻烦?

标签: r data.table roxygen2


【解决方案1】:

看起来您只需要导入 data.table 函数,[ 方法将被正确调度。

subdt/R/mysubdt.R

mysubdt = function(x) {
    stopifnot(class(x)[1L]=="data.table", c("s","g","v") %in% names(x), is.logical(x[["s"]]))
    x[s==TRUE, sum(v), by=g]
}

subdt/NAMESPACE

importFrom(data.table, data.table)
export(mysubdt)

在构建和安装包之后(如果你也加载了 data.table,则不需要::,代码假定你没有):

library(subdt)
x = data.table::data.table(
    s = c(TRUE,TRUE,FALSE,TRUE),
    g = c("a","b","a","b"),
    v = 1:4/10
)
mysubdt(x)
#   g  V1
#1: a 0.1
#2: b 0.6

【讨论】:

    猜你喜欢
    • 2015-09-30
    • 2016-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    • 2020-05-06
    相关资源
    最近更新 更多