我试图使用 data.table 获得更好的性能,但不知道如何在 dplyr 中执行相当于 distinct %>% summarize 的操作 . 任何想法如何我可以调整以下代码 data.table ?
data.table
dplyr
distinct %>% summarize
group_by_('x,y,z') %>% distinct('h', .keep_all = TRUE) %>% summarise(tot1 = sum(value1), tot2 = sum(value2))
您可以使用 data.table 以2个步骤执行组,不同和求和 . 首先,将 unique() 与 by 参数设置为分组和不同变量 . 然后只使用分组变量来执行data.table等效的 summarize() .
unique()
by
summarize()
dfq = data_frame( g1 = rep(c('a', 'b', 'c'), times = 12), g2 = rep(c('d', 'e', 'f', 'g'), times = 9), c3 = as.integer(30 * runif(36)), d4 = rep(LETTERS[1:18], times = 2) ) dtq = as.data.table(dfq) dtq2 = unique(dtq, by = c("g1", "g2", "d4"))[ , .(sum1 = sum(c3)), by = c("g1", "g2") ]
1 回答
您可以使用
data.table
以2个步骤执行组,不同和求和 . 首先,将unique()
与by
参数设置为分组和不同变量 . 然后只使用分组变量来执行data.table等效的summarize()
.