【问题标题】:Arrange by a new variable in R按 R 中的新变量排列
【发布时间】:2016-09-09 12:42:58
【问题描述】:

我已经寻找类似的主题,但找不到解决方案。

我已按运营商对以下数据集进行了分组,并创建了新变量以成功查看平均和总延迟时间。现在我只想按平均延迟来排列数据,但是当我将下面的代码放入其中时,它会为每一行返回相同的数据。谁能帮我弄清楚我哪里出错了?

使用 dplyr 包,数据集是“航班”,过滤掉了 na 值使用:

filter(!is.na(dep_delay), !is.na(arr_delay)). 

我从这个资源http://r4ds.had.co.nz/transform.html#exercises-11的第 5.6.7 节获得了数据和练习

bycarrier %>%  
  transmute(  
    arrsum = sum(arr_delay),  
    arravg = mean(arr_delay),  
    depsum = sum(dep_delay),  
    depavg = mean(dep_delay)   
  ) %>%  
  arrange(desc(arravg))

返回:

Adding missing grouping variables: `carrier`
Source: local data frame [327,346 x 5]
Groups: carrier [16]

   carrier arrsum  arravg depsum   depavg  
     <chr>  <dbl>   <dbl>  <dbl>    <dbl>  
1       F9  14928 21.9207  13757 20.20117  
2       F9  14928 21.9207  13757 20.20117  
3       F9  14928 21.9207  13757 20.20117  
4       F9  14928 21.9207  13757 20.20117  
5       F9  14928 21.9207  13757 20.20117  
6       F9  14928 21.9207  13757 20.20117  
7       F9  14928 21.9207  13757 20.20117  
8       F9  14928 21.9207  13757 20.20117  
9       F9  14928 21.9207  13757 20.20117  
10      F9  14928 21.9207  13757 20.20117  
# ... with 327,336 more rows  

【问题讨论】:

标签: r


【解决方案1】:

我认为您需要使用函数summarise 而不是transmute,如下所示:

bycarrier %>%  
  summarise(  
    arrsum = sum(arr_delay),  
    arravg = mean(arr_delay),  
    depsum = sum(dep_delay),  
    depavg = mean(dep_delay)   
  ) %>%  
  arrange(desc(arravg))

这将给出输出:

# A tibble: 16 x 5
   carrier arrsum     arravg  depsum    depavg
     <chr>  <dbl>      <dbl>   <dbl>     <dbl>
1       F9  14928 21.9207048   13757 20.201175
2       FL  63868 20.1159055   59074 18.605984
3       EV 807324 15.7964311 1013928 19.838929
4       YV   8463 15.5569853   10281 18.898897
5       OO    346 11.9310345     365 12.586207
6       MQ 269767 10.7747334  261521 10.445381
7       WN 116214  9.6491199  212717 17.661657
8       B6 511194  9.4579733  700883 12.967548
9       9E 127624  7.3796692  284306 16.439574
10      UA 205589  3.5580111  694361 12.016908
11      US  42232  2.1295951   74261  3.744693
12      VX   9027  1.7644644   65263 12.756646
13      DL  78366  1.6443409  439595  9.223950
14      AA  11638  0.3642909  273758  8.569130
15      HA  -2365 -6.9152047    1676  4.900585
16      AS  -7041 -9.9308886    4134  5.830748

【讨论】:

  • 是的,这行得通。非常感谢。我仍然有点不确定为什么它不适用于 transmute,但我仍在学习,所以我相信我会弄明白的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-09
  • 2016-08-17
  • 2013-12-17
  • 1970-01-01
  • 2021-01-01
  • 2018-11-27
  • 1970-01-01
相关资源
最近更新 更多