library(dplyr)
library(nycflights13)
library(RColorBrewer)
flightswdata <- flights %>%
   filter(!is.na(distance) & ! is.na(dep_delay) & !is.na(dest))

flightswdata$route <- paste(flightswdata$origin, flightswdata$dest, sep="-")
head(flightswdata)

delays <- flightswdata %>%
  group_by(route, month) %>%
  summarize (count=n(),
            month=month,
            route=route,
            avgdelay=mean(dep_delay))
`summarise()` has grouped output by 'route', 'month'. You can override using the `.groups` argument.
head(delays)
NA


delays <- flightswdata %>%
  group_by(route) %>%
  summarize(count=n(),
            route=route,
            avgdelay=mean(dep_delay))
`summarise()` has grouped output by 'route'. You can override using the `.groups` argument.
#    delays <- arrange(delays, desc(avgdelay))


delays <- delays[order(delays$avgdelay),]

#delays <- delays %>%
#   filter(avgdelay>0, count>500) %>%
#   summarize(count=n(),
#             route=route,
#             avgdelay=mean(flightswdata$dep_delay))


#delays %>% distinct()
summarize(delays)

#row.names(delays) <- delays$route

# view(delays)

#delays_dest <- data.matrix(delays)
# head(delays_dest)

#


varcols = setNames(colorRampPalette(brewer.pal(nrow(delays_dest), "YlGnBu"))(nrow(delays_dest)), 
                   rownames(delays_dest))   # parameter for RowSideColors
Warning in brewer.pal(nrow(delays_dest), "YlGnBu") :
  n too large, allowed maximum for palette YlGnBu is 9
Returning the palette you asked for with that many colors
heatmap(delays_mat2, 
        Rowv = NA, Colv = NA, 
        col= colorRampPalette(brewer.pal(nrow(delays_dest), "YlGnBu"))(nrow(delays_dest)),
        s=0.6, v=1, scale="column", 
        margins=c(2,3), 
        main = "Cost of Late Arrivals", 
        xlab = "Flight Characteristics", 
        ylab="Arrival Airport", labCol = c("Flights","Distance","Delay","Cost Index"),
        cexCol=1, cexRow =1, RowSideColors = varcols)
Error in heatmap(delays_mat2, Rowv = NA, Colv = NA, col = colorRampPalette(brewer.pal(nrow(delays_dest),  : 
  'RowSideColors' must be a character vector of length nrow(x)
gg <- ggplot(alluvial::delays,
       aes(y=avgdelay, x=month, alluvium=route))
Error in ggplot(alluvial::delays, aes(y = avgdelay, x = month, alluvium = route)) : 
  could not find function "ggplot"
library(treemap)
library(viridis)
summarize(delays)
delayspos <- delays %>%
   filter(avgdelay>0, count>500)
summarize(delayspos)
treemap(delayspos, index="route", vSize="count", vColor="avgdelay", type="value", palette=viridis(15))

LS0tDQp0aXRsZTogIldrIDUgYXNzaWdubWVudCBEYXRhMTEwIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCmBgYHtyfQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkobnljZmxpZ2h0czEzKQ0KbGlicmFyeShSQ29sb3JCcmV3ZXIpDQpmbGlnaHRzd2RhdGEgPC0gZmxpZ2h0cyAlPiUNCiAgIGZpbHRlcighaXMubmEoZGlzdGFuY2UpICYgISBpcy5uYShkZXBfZGVsYXkpICYgIWlzLm5hKGRlc3QpKQ0KDQpmbGlnaHRzd2RhdGEkcm91dGUgPC0gcGFzdGUoZmxpZ2h0c3dkYXRhJG9yaWdpbiwgZmxpZ2h0c3dkYXRhJGRlc3QsIHNlcD0iLSIpDQpoZWFkKGZsaWdodHN3ZGF0YSkNCg0KZGVsYXlzIDwtIGZsaWdodHN3ZGF0YSAlPiUNCiAgZ3JvdXBfYnkocm91dGUsIG1vbnRoKSAlPiUNCiAgc3VtbWFyaXplIChjb3VudD1uKCksDQogICAgICAgICAgICBtb250aD1tb250aCwNCiAgICAgICAgICAgIHJvdXRlPXJvdXRlLA0KICAgICAgICAgICAgYXZnZGVsYXk9bWVhbihkZXBfZGVsYXkpKQ0KaGVhZChkZWxheXMpDQoNCmBgYA0KDQoNCmBgYHtyfQ0KDQoNCg0KIyAgICBkZWxheXMgPC0gYXJyYW5nZShkZWxheXMsIGRlc2MoYXZnZGVsYXkpKQ0KDQoNCmRlbGF5cyA8LSBkZWxheXNbb3JkZXIoZGVsYXlzJGF2Z2RlbGF5KSxdDQoNCiNkZWxheXMgPC0gZGVsYXlzICU+JQ0KIyAgIGZpbHRlcihhdmdkZWxheT4wLCBjb3VudD41MDApICU+JQ0KIyAgIHN1bW1hcml6ZShjb3VudD1uKCksDQojICAgICAgICAgICAgIHJvdXRlPXJvdXRlLA0KIyAgICAgICAgICAgICBhdmdkZWxheT1tZWFuKGZsaWdodHN3ZGF0YSRkZXBfZGVsYXkpKQ0KDQoNCiNkZWxheXMgJT4lIGRpc3RpbmN0KCkNCnN1bW1hcml6ZShkZWxheXMpDQoNCiNyb3cubmFtZXMoZGVsYXlzKSA8LSBkZWxheXMkcm91dGUNCg0KIyB2aWV3KGRlbGF5cykNCg0KI2RlbGF5c19kZXN0IDwtIGRhdGEubWF0cml4KGRlbGF5cykNCiMgaGVhZChkZWxheXNfZGVzdCkNCg0KIw0KYGBgDQoNCg0KDQpgYGB7cn0NCg0KDQp2YXJjb2xzID0gc2V0TmFtZXMoY29sb3JSYW1wUGFsZXR0ZShicmV3ZXIucGFsKG5yb3coZGVsYXlzX2Rlc3QpLCAiWWxHbkJ1IikpKG5yb3coZGVsYXlzX2Rlc3QpKSwgDQogICAgICAgICAgICAgICAgICAgcm93bmFtZXMoZGVsYXlzX2Rlc3QpKSAgICMgcGFyYW1ldGVyIGZvciBSb3dTaWRlQ29sb3JzDQoNCmhlYXRtYXAoZGVsYXlzX21hdDIsIA0KICAgICAgICBSb3d2ID0gTkEsIENvbHYgPSBOQSwgDQogICAgICAgIGNvbD0gY29sb3JSYW1wUGFsZXR0ZShicmV3ZXIucGFsKG5yb3coZGVsYXlzX2Rlc3QpLCAiWWxHbkJ1IikpKG5yb3coZGVsYXlzX2Rlc3QpKSwNCiAgICAgICAgcz0wLjYsIHY9MSwgc2NhbGU9ImNvbHVtbiIsIA0KICAgICAgICBtYXJnaW5zPWMoNywxMCksIA0KICAgICAgICBtYWluID0gIkNvc3Qgb2YgTGF0ZSBBcnJpdmFscyIsIA0KICAgICAgICB4bGFiID0gIkZsaWdodCBDaGFyYWN0ZXJpc3RpY3MiLCANCiAgICAgICAgeWxhYj0iQXJyaXZhbCBBaXJwb3J0IiwgbGFiQ29sID0gYygiRmxpZ2h0cyIsIkRpc3RhbmNlIiwiRGVsYXkiLCJDb3N0IEluZGV4IiksDQogICAgICAgIGNleENvbD0xLCBjZXhSb3cgPTEsIFJvd1NpZGVDb2xvcnMgPSB2YXJjb2xzKQ0KDQoNCmBgYA0KDQpgYGB7cn0NCmdnIDwtIGdncGxvdChhbGx1dmlhbDo6ZGVsYXlzLA0KICAgICAgIGFlcyh5PWF2Z2RlbGF5LCB4PW1vbnRoLCBhbGx1dml1bT1yb3V0ZSkpDQpnZyArIGdlb21fYWxsdXZpdW0oYWVzKGZpbGwgPSByb3V0ZSwgY29sb3IgPSByb3V0ZSksDQogICAgICAgICAgICAgICAgICAgd2lkdGg9MS80LCBhbHBoYT0uOCwgZGVjcmVhc2luZyA9IEZBTFNFLA0KICAgICAgICAgICAgICAgICAgIGN1cnZlX3R5cGU9InNpZ21vaWQiKQ0KDQpgYGANCg0KYGBge3J9DQpsaWJyYXJ5KHRyZWVtYXApDQpsaWJyYXJ5KHZpcmlkaXMpDQpzdW1tYXJpemUoZGVsYXlzKQ0KDQpzdW1tYXJpemUoZGVsYXlzcG9zKQ0KdHJlZW1hcChkZWxheXNwb3MsIGluZGV4PSJyb3V0ZSIsIHZTaXplPSJjb3VudCIsIHZDb2xvcj0iYXZnZGVsYXkiLCB0eXBlPSJ2YWx1ZSIsIHBhbGV0dGU9dmlyaWRpcygxNSkpDQpgYGANCg0K