![]() |
1
1
作为第一步,我可能会使用
现在您有了一个大致类似的序列(在代码和英语的伪代码组合中):
产量
现在,对于每个交易列表,您都需要加上总和,其中一些交易被认为是“正的”,一些交易被认为是“负的”,这取决于它们是与(name1,name2)顺序相同还是相反。也就是说,在第一个交易列表中,阿莱西奥支付卢卡的交易被认为是正的,卢卡支付阿莱西奥的交易被认为是负的。把所有这些值加起来,如果差额是正数,那么借方和贷方的关系是“name1欠name2钱”,否则是相反的。例如。:
现在,您的序列如下所示:
现在我们要丢弃组名(name1,name2)对,只取序列中每个元组的第二部分。(记住序列的总体结构是
将所有部分放在一起时,如果将代码安排在一个管道中,而不进行中间步骤,代码将如下所示:
注意:由于您要求“一种正确的功能性方法”,我已经为您的数据对象使用了f record语法编写了这篇文章。在默认情况下,F记录提供了许多有用的功能,而这些功能是您无法从类中获得的,比如已经为您编写了比较和哈希代码函数。另外,记录一旦创建就不可变,因此您不必担心多线程环境中的并发性:如果您引用了一个记录,那么没有其他代码会在您不发出警告的情况下将其从您的下面更改出来。但是,如果您使用的是类,那么创建类的语法将不同。
注2:我只有90%的把握我的代码中有正确的债权人/借方顺序。测试这个代码,如果结果是我交换了它们,那么交换适当的部分(如
我希望这个解决方案的逐步构造能够帮助您更好地理解代码在做什么,以及如何以正确的功能风格做事情。 |
![]() |
In0cybe · 仅具有多行的组的和值 7 年前 |
![]() |
Rnovice · 根据[重复]列中的唯一值在R中聚合 7 年前 |
![]() |
Sung min Yang · 如何创建均值+标准差数据。框架 7 年前 |
![]() |
ajax2000 · 基于R中现有列中的组创建新列 7 年前 |
![]() |
Spencer Trinh · 如何根据标签匹配来组织和移动数据行? 7 年前 |