我有一个数据框,我通过分组进行拆分,然后使用 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 变量?