首页 > 解决方案 > 将整个 data.table 传递给 j 表达式

问题描述

我想将所有列用作j分组 data.table 上表达式中的对象(就像 tidyverse 的group_modify函数一样)。

到目前为止,我通过以下方式实现了这一点:

dt[, some_function(data.table(.SD)), some_column, .SDcols = colnames(dt)]

但这感觉很笨拙,还有另一种(更简单)的方法吗?

标签: rdata.table

解决方案


似乎包中没有任何函数可以呈现这种行为。使代码更具可读性(至少对我而言)的方法是创建一个包装函数并使用它:

temp_fun <- function(f, ...) {
  f(as.data.table(list(...)))
}

dt[, temp_fun(some_function, .SD), some_column]


推荐阅读