0

我有一个数据框,我通过分组进行拆分,然后使用 do() 在每个分组部分上运行一个函数。我遇到的问题是函数内部有一个变量需要根据每个不同的组进行更改。我该如何解释呢?

数据按地区和联赛分组。

Account  Region  League  Owner  Value
Acc1     East    Major   Sally  1536
Acc2     East    Minor   Jeff   2200
Acc3     East    Minor   Larry  3320
Acc4     West    Major   Harry  4000
Acc5     West    Major   Harry  900
Acc6     West    Minor   Jess   700

East Major
East Minor
West Major
West Minor ... etc

这是我将传递给数据的每个分组版本的函数的一部分。

reAssign <- function(dta) {
  other_acct <- dta %>% 
    group_by(Owner) %>% 
    mutate(NewOwner = replace(Owner, cumsum(AccValue) > 600000 | row_number() > 14, NA)) %>% 
    ungroup(Owner) %>%
    mutate(Owner = NewOwner) %>%
    select(-r, -NewOwner)

在按 Region、League 分组之后,它被传递给函数,并在函数内部按 Owner 分组。在下面的这个函数中,我需要传递一个不同的值cumsum(AccValue) > 600000 | row_number() > 14。600000 AccValue 和帐户数需要根据它所在的组进行更改。我有另一个 df 详细说明了所有这些内容。

RegionLeague  MaxValue   MaxCount
East Major    600000     14
East Minor    450000     10
West Major    800000     20
West Minor    220000     12

我怎样才能改变

mutate(NewOwner = replace(Owner, cumsum(AccValue) > 600000 | row_number() > 14, NA)) %>%

成为

mutate(NewOwner = replace(Owner, cumsum(AccValue) > MaxValue | row_number() > MaxCount, NA)) %>%

并将正确的列表传递给每个 MaxValue 和 MaxCount 变量?

4

0 回答 0