gpt4 book ai didi

r - 按组以字符格式汇总金额

转载 作者:行者123 更新时间:2023-12-02 19:01:25 24 4
gpt4 key购买 nike

我有一个数据框,其中包含个人之间的货币交易。交易可以是双向的,即A可以向B转账,B也可以向A转账。数据帧的结构如下:

From  To  Amount
A B $100
A C $40
A D $30
B A $25
B C $70
C A $190
C D $110

我想总结每对相互进行交易的个人之间的交易总量,结果应该类似于:

Individual_1  Individual_2    Sum
A B $125
A C $230
A D $30
B C $70
C D $110

我尝试利用包 dplyr 的分组功能,但我认为它不适用于我的情况。

最佳答案

您可以使用 pmin/pmaxFromTo 列进行排序以及 sum 金额 值。

library(dplyr)

df %>%
group_by(col1 = pmin(From, To),
col2 = pmax(From, To)) %>%
summarise(Amount = sum(readr::parse_number(Amount)))

# col1 col2 Amount
# <chr> <chr> <dbl>
#1 A B 125
#2 A C 230
#3 A D 30
#4 B C 70
#5 C D 110

在基本 R 中使用相同的逻辑,您可以执行以下操作:

aggregate(Amount~col1 + col2, 
transform(df, col1 = pmin(From, To), col2 = pmax(From, To),
Amount = as.numeric(sub('$', '', Amount, fixed = TRUE))), sum)

数据

df <- structure(list(From = c("A", "A", "A", "B", "B", "C", "C"), To = c("B", 
"C", "D", "A", "C", "A", "D"), Amount = c("$100", "$40", "$30",
"$25", "$70", "$190", "$110")), class = "data.frame", row.names = c(NA, -7L))

关于r - 按组以字符格式汇总金额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65535162/

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