R dplyr:基于组的条件突变

时间:2018-09-05 13:42:31

标签: r for-loop dplyr mutate

当前,我正在解决以下问题:

我正在尝试将数据集分组,并创建一个新变量,以捕获特定时间范围内不属于该组的所有相反案例的组均值。

这是使用mpg数据集复制我的代码。

cars <- mpg

cars$other_cty_yearly_mean <- 0

for(i in cars$cyl){
  cars <- cars %>%
    group_by(year) %>%
    mutate(other_cty_yearly_mean = if_else(
      cyl == i,
      mean(cty[cyl != i]),
      other_cty_yearly_mean
    )) %>%
    ungroup() %>%
    as.data.frame()
}

有没有更好的方法不需要for循环?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用true中的map_dbl来转换for循环:

purrr