group_by 对mutate,summary里的基础函数的适用情况

 group_by的价值在于对 从对整个数据框的数据处理,转换为对每个组内的数据处理。

 如:> not_cancelled %>%group_by(year,month,day)%>%filter(rank(desc(arr_delay))<=10) %>% select(month,year,day,arr_delay) #取各组内的前10记录。

      > not_cancelled %>%filter(rank(desc(arr_delay))<=10) %>% select(month,year,day,arr_delay) #取数据框所有数据的前10记录。

 

 

  • 摘要函数 如mean() ,median() 适用以分组为基础计算 如 gf %>%mutate(mean(x))
  •  

  •  

  • 对已有变量单个值的运算符不适用按向量分组分组。如 + -  log()  %/% %% < == 等。 如 gf %>%mutate(z=x+2)
  • 偏移函数lag(),lead(),min_rank(),row_number() 同样会按组计算 如 
    •  gf %>%mutate(lag_x=lag(x),lead_x=lead(x)) 
    •  gf %>% mutate(min_rank(x))
  •  

    •  

        其中取每个分组的第一个值gf %>% filter(min_rank(x)==1)

  

 

  arrange()需要指定.group=TRUE,才适用。如df %>% group_by(group) %>%arrange(x,.by_group=TRUE)

 

lag() 返回向量中元素前一个值

lead() 返回向量中元素后一个值

#Find the "previous" (lag()) or "next" (lead()) values in a vector. Useful for comparing values behind of or ahead of the current values.

 

posted on 2021-12-18 22:19  BioinformaticsMaster  阅读(272)  评论(0编辑  收藏  举报

导航