split apply with dplyr do和function

时间:2017-02-08 15:13:44

标签: 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     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进行分组之后,它会传递函数并在函数内部由所有者对其进行分组。在下面的这个函数中,我需要传递一个不同的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变量?

0 个答案:

没有答案