如何计算重复项之间的差异

时间:2018-08-16 21:25:28

标签: r tidyverse

如何计算重复键的差异,如下所示?

输入

library(nycflights13)
head(flights, n=6) %>% select(origin, dep_time)

# A tibble: 6 x 2
  origin dep_time
  <chr>     <int>
1 EWR         517
2 LGA         533
3 JFK         542
4 JFK         544
5 LGA         554
6 EWR         554

输出

  origin dep_time
  <chr>     <int>
1 EWR         37
2 LGA         23
3 JFK         2

2 个答案:

答案 0 :(得分:1)

summarise返回一个数据集,该数据集的每一列均按行排列。在数据集“航班”中,每个“来源”都有多行。在这种情况下,我们可以将summarise设为list,然后将unnest

library(nycflights13)
library(tidyverse)
flights %>% 
   select(origin, dep_time) %>% 
   group_by(origin) %>%
   summarise(dep_time = list(diff(dep_time))) %>%
   unnest

答案 1 :(得分:0)

您可以使用lag来计算差异,然后通过取2个原点的序列的最后一个值来进行分组

    Flight %>%
    arrange(Origin)%>%
    mutate(diff= Deptime - c(1, lag(Deptime)[-1]))%>%
    group_by(Origin)%>%
    summarise(last(diff))