Fastbooks Incidentally Supports R

R and ggplot!
r
jupyter
ggplot
Published

September 9, 2020

Pleasant Surprise

While trying to test the boundaries of what fastpages actually supports, I figured I’d try out installing and setting up an R Notebook as well. Luckily enough, it does indeed support compiling and building R kernels as well.

The first step will be to install an R kernel for the notebook which can be done using:

conda install -c r r-essentials

This can be ran either from inside a notebook by prepending a ! in a cell such as !conda install -c r r-essentials or simply run it at the console if you’re in linux and in the project directory.

This is mostly an exibition post about how this can be done so we’re just going to show off some R stuff.

# I miss this selecting over Python's Pandas:
mtcars[order(mtcars$gear, mtcars$mpg), ]
mpgcyldisphpdratwtqsecvsamgearcarb
Cadillac Fleetwood10.4 8 472.0205 2.93 5.25017.980 0 3 4
Lincoln Continental10.4 8 460.0215 3.00 5.42417.820 0 3 4
Camaro Z2813.3 8 350.0245 3.73 3.84015.410 0 3 4
Duster 36014.3 8 360.0245 3.21 3.57015.840 0 3 4
Chrysler Imperial14.7 8 440.0230 3.23 5.34517.420 0 3 4
Merc 450SLC15.2 8 275.8180 3.07 3.78018.000 0 3 3
AMC Javelin15.2 8 304.0150 3.15 3.43517.300 0 3 2
Dodge Challenger15.5 8 318.0150 2.76 3.52016.870 0 3 2
Merc 450SE16.4 8 275.8180 3.07 4.07017.400 0 3 3
Merc 450SL17.3 8 275.8180 3.07 3.73017.600 0 3 3
Valiant18.1 6 225.0105 2.76 3.46020.221 0 3 1
Hornet Sportabout18.7 8 360.0175 3.15 3.44017.020 0 3 2
Pontiac Firebird19.2 8 400.0175 3.08 3.84517.050 0 3 2
Hornet 4 Drive21.4 6 258.0110 3.08 3.21519.441 0 3 1
Toyota Corona21.5 4 120.1 97 3.70 2.46520.011 0 3 1
Merc 280C17.8 6 167.6123 3.92 3.44018.901 0 4 4
Merc 28019.2 6 167.6123 3.92 3.44018.301 0 4 4
Mazda RX421.0 6 160.0110 3.90 2.62016.460 1 4 4
Mazda RX4 Wag21.0 6 160.0110 3.90 2.87517.020 1 4 4
Volvo 142E21.4 4 121.0109 4.11 2.78018.601 1 4 2
Datsun 71022.8 4 108.0 93 3.85 2.32018.611 1 4 1
Merc 23022.8 4 140.8 95 3.92 3.15022.901 0 4 2
Merc 240D24.4 4 146.7 62 3.69 3.19020.001 0 4 2
Fiat X1-927.3 4 79.0 66 4.08 1.93518.901 1 4 1
Honda Civic30.4 4 75.7 52 4.93 1.61518.521 1 4 2
Fiat 12832.4 4 78.7 66 4.08 2.20019.471 1 4 1
Toyota Corolla33.9 4 71.1 65 4.22 1.83519.901 1 4 1
Maserati Bora15.0 8 301.0335 3.54 3.57014.600 1 5 8
Ford Pantera L15.8 8 351.0264 4.22 3.17014.500 1 5 4
Ferrari Dino19.7 6 145.0175 3.62 2.77015.500 1 5 6
Porsche 914-226.0 4 120.3 91 4.43 2.14016.700 1 5 2
Lotus Europa30.4 4 95.1113 3.77 1.51316.901 1 5 2
mtcars[order(mtcars$gear, mtcars$mpg), ] %>%
    ggplot(aes(disp, hp, colour = cyl)) + 
    geom_point()

crimes <- data.frame(state = tolower(rownames(USArrests)), USArrests)

# Equivalent to crimes %>% tidyr::pivot_longer(Murder:Rape)
 vars <- lapply(names(crimes)[-1], function(j) {
data.frame(state = crimes$state, variable = j, value = crimes[[j]])
})
crimes_long <- do.call("rbind", vars)

states_map <- map_data("state")
ggplot(crimes_long, aes(map_id = state)) +
    geom_map(aes(fill = value), map = states_map) +
    expand_limits(x = states_map$long, y = states_map$lat) +
    facet_wrap( ~ variable)

I did also try to use ggvis as well but it just wont display properly so that’s unfortunately out.