gpt4 book ai didi

r - 如何以 R dplyr 特定方式进行 group_by?

转载 作者:行者123 更新时间:2023-12-02 16:11:56 25 4
gpt4 key购买 nike

我有一个包含三列的 data.frame FROM、TO(方向从、方向到)和 COUNT:

FROM, TO, COUNT
A, B, 3
B, A, 4
C, D, 1
X, Y, 6
D, C, 9

如果 data.frame 中存在相反方向,我需要按行分组并对 COUNT 求和。

预期结果:

FROM, TO, COUNT
A, B, 7 <------- (A, B) 3 + 4 (B,A)
C, D, 10 <- (C, D) 1 + 9 (D,C)
X, Y, 6 <- stays as there is no opposite Y to X

最佳答案

我们可以使用pminpmax 将不同顺序的组视为相同,然后对每个组求和

dplyr 中你可以这样做 -

library(dplyr)

df %>%
group_by(col1 = pmin(FROM, TO), col2 = pmax(FROM, TO)) %>%
summarise(COUNT = sum(COUNT)) %>%
ungroup

或以 R 为基数 -

aggregate(COUNT~FROM + TO, 
transform(df, FROM = pmin(FROM, TO), TO = pmax(FROM, TO)), sum)

# FROM TO COUNT
#1 A B 7
#2 C D 10
#3 X Y 6

关于r - 如何以 R dplyr 特定方式进行 group_by?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67769724/

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