r - 计算航班中目的地的平均延误
问题描述
我正在尝试解决一项任务:Compute the average delay by destination, then join on the airports data frame so you can show the spatial distribution of delays. Here’s an easy way to draw a map of the United States
所以我最初的方法是计算平均延迟。我是 R 新手,到目前为止我还没有在章节中阅读过循环,所以我认为我不应该使用循环。如果可能的话,我想不这样做。在任何其他编程语言中,我都会做类似的事情:
for i= 1 to flights.length
for j = i to flights.length
if flight[i].destination == flight[j].destination
avarage += (flight[i].arr_delay + flight[j].arr_delay)/i;
如果有帮助,这里是我要解决的问题的链接:https ://r4ds.had.co.nz/relational-data.html#exercises-30
我有点卡住了。到目前为止,这就是我在 R 中所拥有的:
library(tidyverse)
library(maps)
library(nycflights13)
fl <- flights %>%
filter(!is.na(arr_delay)) %>%
group_by(arr_delay)
view(mutate(fl, "avgDelay" = mean(arr_delay)))
添加的新列,我称之为“avgDelay”,只显示与 arr_delay 相同的值,所以我肯定做错了。
非常感谢任何帮助
解决方案
在没有可重复数据的情况下,并且由于您的数据看起来像什么以及您的目标是什么缺乏清晰性,这里是您可能的意思的狂野镜头。您帖子的标题提到“目的地的平均延迟”。这表明您至少有两个变量,一个我们可以调用delay
,一个我们将调用destination
。这是一个带有一些采样数据的数据框,用于说明:
数据:
set.seed(122)
delay <- sample(0:200, 10)
destination <- sample(LETTERS[1:3], 10, replace = T)
df <- data.frame(delay, destination)
df
delay destination
1 57 C
2 157 B
3 81 C
4 174 B
5 185 A
6 8 C
7 102 A
8 173 A
9 106 A
10 87 C
解决方案:
要按目的地计算平均延迟,您可以使用tapply
以下函数mean
:
tapply(df$delay, df$destination, mean)
A B C
141.50 165.50 58.25
这是否接近你所追求的?
推荐阅读
- vim - VsCode VIM - 如何打开“新的无标题文件”
- javascript - Javascript .toLocaleString() 不支持“2 位”
- r - 有没有一种简单的方法可以将 dplyr 汇总函数结果添加到每一行?
- c# - 如何找出字节的格式?南音频
- python - Keras 适合生成器 - ValueError:无法找到可以处理输入的数据适配器
- javascript - 访问嵌套对象属性的更好的 javascript 方法
- python - 按每个唯一 ID 分组,然后查找每个品牌的购买次数
- reactjs - 如何用小滑块组件包装图像进行反应?
- ruby-on-rails - 创建回调后如何跳过验证
- javascript - 如何禁用用户输入以实现自动完成