在R中绘制分组概率

时间:2015-08-14 18:45:11

标签: r probability

我是R的新手,我正在尝试按小时计算航班延误概率。航班延误的可能性将使用1和0的“延迟”列计算。

这就是我所拥有的。我试图将自定义函数放入fun.y中,但似乎不允许这样做。

library(ggplot2)    
ggplot(data = flights, aes(flights$HourOfDay, flights$ArrDelay)) + 
           stat_summary(fun.y = (sum(flights$Delay)/no_na_flights), geom = "bar") + 
           scale_x_discrete(limits=c(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25)) +
           ylim(0,500)

最好的方法是什么? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我不确定这是否是你想要的,但我是按照以下方式做到的:

library(ggplot2)    
library(dplyr)
library(nycflights13)

probs <- flights %>%
  # Testing whether a delay occurred for departure or arrival
  mutate(Delay = dep_delay > 0 | arr_delay > 0) %>%
  # Grouping the data by hour
  group_by(hour) %>%
  # Calculating the proportion of delays for each hour
  summarize(Prob_Delay = sum(Delay, na.rm = TRUE) / n()) %>%
  ungroup()

theme_set(theme_bw())
ggplot(probs) +
  aes(x = hour,
      y = Prob_Delay) +
  geom_bar(stat = "identity") +
  scale_x_continuous(breaks = 0:24)

其中给出了以下情节: Resulting plot

我认为在ggplot之外进行数据操作总是更好,例如使用dplyr。