如何为分组数据帧的每一组改变向量的第一值

时间:2019-05-17 02:42:33

标签: r dplyr

我已通过以下代码以骇人的方式完成了此任务

library(dplyr)

mtcars %>% 
  select(cyl, mpg) %>% 
  group_by(cyl) %>% 
    slice(1:3) %>% 
    arrange(cyl, mpg) %>% 
    mutate(mpg = ifelse( seq_along(mpg) == 1, 0, mpg ))

但是我觉得有一个更好的方法。

1 个答案:

答案 0 :(得分:1)

如果我们可以用head/sort包装,则可以用更少的步骤来完成。按'cyl'分组后,用head,'sort获取'mpg'的前3个元素,删除第一个元素([-1]),连接(c)设为0,则将其包装在list内的summarise中,然后将unnest的{​​{1}}

list