【发布时间】:2016-06-06 15:22:09
【问题描述】:
我已经使用?stats::aggregate 函数实现了一个简单的分组操作。它在向量中收集每组的元素。我想使用 data.table 包让它更快。但是我无法使用 data.table 重现想要的行为。
样本数据集:
df <- data.frame(group = c("a","a","a","b","b","b","b","c","c"), val = c("A","B","C","A","B","C","D","A","B"))
使用 data.table 重现的输出:
by_group_aggregate <- aggregate(x = df$val, by = list(df$group), FUN = c)
我尝试过的:
data_t <- data.table(df)
# working, but not what I want
by_group_datatable <- data_t[,j = paste(val,collapse=","), by = group]
# no grouping done when using c or as.vector
by_group_datatable <- data_t[,j = c(val), by = group]
by_group_datatable <- data_t[,j = as.vector(val), by = group]
# grouping leads to error when using as.list
by_group_datatable <- data_t[,j = as.list(val), by = group]
data.table 列中是否可以有不同大小的向量?如果是,我该如何实现?
【问题讨论】:
标签: r data.table