【发布时间】:2014-10-29 16:58:44
【问题描述】:
我想开始使用 data.table 而不是 dplyr,因为我必须加快计算速度。 现在我对组中每个元素的代码使用分组列的值。 但是 data.table 放弃了它。例如
g <- function(x) {
browser()
}
DT = data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9)
DT[,list(a = g(.SD)), keyby="x"]
当从浏览器查询x 的值时给出:
y v
1: 1 1
2: 3 2
3: 6 3
对于组的第一个元素。
有什么方法可以获取 g() 中每个组的 x 值吗?
更新: 我正在使用公式取决于组的函数,例如
g <- function(data) {
if (x == "a") {
return(y-v)
} else {
return(v-y)
}
}
【问题讨论】:
-
我怀疑被问到的是如何在
[.data.table中的“j”表达式中引用分组变量,但正在使用的函数并没有为此传达特定目的请求。 -
感谢@BondedDust 的编辑。 kismsu,也很有可能获得分组变量。尽管如此,如果您展示您的实际任务以便获得更好的想法(在写答案之前),它会有所帮助。
标签: r data.table