gpt4 book ai didi

r - 在 R 中与 data.table 分组时保留空组

转载 作者:行者123 更新时间:2023-12-01 09:14:54 24 4
gpt4 key购买 nike

在按多个条件分组时,我想保留空组(使用默认值,例如 NA 或 0)。

dt = data.table(user = c("A", "A", "B"), date = c("t1", "t2", "t1"), duration = c(1, 2, 1))
dt[, .("total" = sum(duration)), by = .(date, user)]

结果:

   date user total
1: t1 A 1
2: t2 A 2
3: t1 B 1

想要的结果:

   date user total
1: t1 A 1
2: t2 A 2
3: t1 B 1
3: t2 B NA

一种解决方案可能是在分组之前添加具有 0 值的行,但它需要创建许多列的笛卡尔积并手动检查该组合是否已经存在值,但我更喜欢内置/更简单的一个。

最佳答案

你可以试试:

dt[CJ(user = user, date = date, unique = TRUE), on = .(user, date)]

user date duration
1: A t1 1
2: A t2 2
3: B t1 1
4: B t2 NA

关于r - 在 R 中与 data.table 分组时保留空组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57514328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com