gpt4 book ai didi

r - 结合 "by"和 "on"加入并创建 data.table 的汇总列

转载 作者:行者123 更新时间:2023-12-04 12:27:27 25 4
gpt4 key购买 nike

我有两个数据集,一个是 weight 的详细数据集和另一个应该是摘要数据集。我试图通过加入详细数据集并聚合来创建汇总数据集,但它没有按预期工作。

这是一个示例代码。

mytesta <- data.table(cola = c("a","b"), groupa = c(1,2))  # summary
mytestb <- data.table(groupa = c(1,1,1,1,2,2,2), weighta = c(10,20,30,25,15,30,10)) #detail

这是我想要的输出。
   cola groupa weighta
1: a 1 85
2: b 2 55

我试图做的是,
mytesta[mytestb, on = "groupa", weight_summary := sum(i.weighta), by = "groupa"]

问题是当 by使用时,内部 data.table 的列消失(例如, mytesta[mytestb, on = "groupa", .SD, by = "groupa"] )。有没有解决的办法?

最佳答案

我会做

mytesta[, v := mytestb[.SD, on=.(groupa), sum(weighta), by=.EACHI]$V1 ]

X[Y]加入,我们正在查找 Y 的每一行在 X .

因此,如果最终目标是在 Y 中创建一个新列每行计算,我们需要一个连接 Y[, v := X[Y, ...]]即使 Y[X, v := ...]起初可能看起来更直观。

关于r - 结合 "by"和 "on"加入并创建 data.table 的汇总列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42774808/

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