gpt4 book ai didi

r - data.table (R) 在按组聚合时粘贴特定行中的值

转载 作者:行者123 更新时间:2023-12-03 09:00:38 25 4
gpt4 key购买 nike

我正在处理一个奇怪的事情。我有一些这样的数据:

dt<-data.table(time = c('13:00','13:00','13:00','13:15','13:15'),group=c('A','A','B','A','B'),code=c('11b','16b','22c','9c','7y'))

time group code
1: 13:00 A 11b
2: 13:00 A 16b
3: 13:00 B 22c
4: 13:15 A 9c
5: 13:15 B 7y

我正在尝试执行以下操作。创建一个新列 (:= Fgroup),该列对 group 进行值调节,并按 时间 聚合。因此,如果group == A,则将值粘贴到code中就足够了。如果group == B,我需要在时间之前粘贴A组的代码(如果有很多代码)。

换句话说:

        time group code Fcode
1: 13:00 A 11b 11b
2: 13:00 A 16b 16b
3: 13:00 B 22c 11b,16b
4: 13:15 A 9c 9c
5: 13:15 B 7y 9c

有什么简单的方法吗?谢谢

最佳答案

你想拥有这样的东西吗?

library(data.table)

dt[, Fcode := paste(code[group == 'A'], collapse = ","), by = time][group == 'A', Fcode := code]

这给出了

> dt
time group code Fcode
1: 13:00 A 11b 11b
2: 13:00 A 16b 16b
3: 13:00 B 22c 11b,16b
4: 13:15 A 9c 9c
5: 13:15 B 7y 9c


示例数据:

dt <- data.table(time = c('13:00','13:00','13:00','13:15','13:15'),
group= c('A','A','B','A','B'),
code = c('11b','16b','22c','9c','7y'))

关于r - data.table (R) 在按组聚合时粘贴特定行中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50797800/

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