拆分应用结合dplyr do和函数
我有一个数据帧,通过分组进行拆分,然后使用do()在每个分组部分上运行一个函数。我遇到的问题是,函数中有一个变量需要根据每个不同的组进行更改。我该怎么解释呢 数据按地区和联盟分组拆分应用结合dplyr do和函数,r,dplyr,split-apply-combine,R,Dplyr,Split Apply Combine,我有一个数据帧,通过分组进行拆分,然后使用do()在每个分组部分上运行一个函数。我遇到的问题是,函数中有一个变量需要根据每个不同的组进行更改。我该怎么解释呢 数据按地区和联盟分组 Account Region League Owner Value Acc1 East Major Sally 1536 Acc2 East Minor Jeff 2200 Acc3 East Minor Larry 3320 Acc4 We
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)
我怎样才能更改密码
mutate(NewOwner=replace(Owner,cumsum(AccValue)>600000 |行数()>14,NA))%%>%
将来
mutate(NewOwner=replace(Owner,cumsum(AccValue)>MaxValue | row_number()>MaxCount,NA))%>%
并将正确的列表传递给每个MaxValue和MaxCount变量?如果您想继续使用可管道代码,可以考虑将dplyr::do
替换为purrr:map
,尤其是purrr::pmap()
这将允许您将多个列表作为参数传递到函数中。如果没有,您可以使用mapply
方法。我会将您的第二个df加入到第一个df中,然后您可以直接使用MaxValue
。
RegionLeague MaxValue MaxCount
East Major 600000 14
East Minor 450000 10
West Major 800000 20
West Minor 220000 12