A reproducible bar crawl

A website built through Hugo, blogdown, and RMarkdown.

Reproducible Bar Crawl

Preamble

The 2017 joint meeting of the American Ornithological Society and the Society of Canadian Ornithologists (ASO-SSO) is being held in East Lansing, Michigan at Michigan State University, Go Green! this summer!. When I heard my friend Auriel Fournier, aka @RallidaeRule, was going to attend I felt compelled to provide a list of awesome places she should check out. At the same time I also wanted to learn how to use blogdown, which is the latest cool thing from Yihui Xi.

To summarize, I wanted to do two things:

  1. Learn a bit of blogdown.
  2. Write up a list of amazing places for Auriel to checkout when she visits East Lansing, Michigan and the incomparable Michigan State University, Go Green!.

Behold, the Reproducible Bar Crawl in all its pedantry.

Preliminaries

Let’s load the packages we will need for our post.

Load packages

library("ggmap")
library("tidyverse")
library("spaceMovie")
options(dplyr.width = Inf)

Overview map

East_Lansing_coords <- c(lon = -84.4826065, lat = 42.734321)
EL_city <- get_map(location = East_Lansing_coords, source = "google", maptype = "roadmap", zoom = 15)
ggmap(EL_city)

That is one beautiful city. Go Green!

Here are the places I think that you should visit. This list is not complete, just my opinion, and in no particular order apart although I consider this an “ordered factor” list:

Places to go

Must visit

  • Crunchy’s - It looks like a hole in the wall. It is a hole in the wall, but one with a great beer selection and really solid food. I recommend a pizza for sharing (square pizza served on a cafeteria tray) or a Chruncy burger (I like a pertzel bun with a side of tots). They always have a great selection of beers on tap, with Michigan beers highlighted. If visiting on a Friday or Saturday, get here early because there will be a line out the door come night. Protip don’t get a bucket of beer. It seems like a good idea at the tie but you just end up with 1/2 a gallon of warm american adjunct lager.
  • The Peanut Barrel - Do yourself a favor; go there during a sunny day, sit out on the patio, order yourself a “Papa Joe’s Cheeseburger” and a Long Island. So good. You will want to take a nap afterward and that is totally OK. If the patio is full you should add your name to the list because the patio is amazing and sitting inside seems lame in comparison.
  • Soup Spoon - Get yourself a Lyft and head into Lansing towards the Capital to treat yourself. Come here for dinner and make a reservation to ensure you get a spot. If you want to live dangerously you can order the full menu at the bar. The food here is amazing. I mean that with all sincerity, amazing. They also have an excellent selection of Michigan beer. The specials are great and there is usually a naan pizza that will blow your mind. For the regular menu items, I highly recommend the Kobe-Wagyu burger. Wow. Just realized most of my food recommendations are for burgers. They also have a really good breakfast.

Should visit

  • Hop Cat - The 2nd member of what is now a chain of craft beer houses that has spread to ~11 locations. The original place in Grand Rapids is cool and you can buy a pint glass for $10. The East Lansing location is large with multiple bars spread across each level. They have a very impressive beer selectio with a lot of the rare stuff that NPR listeners will love.
  • Dusty’s Tap Room - If you were willing to head west to visit the Soup Spoon you should also consider heading east to visit Dusty’s. You want the Tap Room, not the Cellar. The Tap Room is the nice bar with excellent pub food right next to the Cellar. Excellent selection of Michigan beers and very good pub style food. I highly recommend paring a Jalepeno Stuffed Pretzel with a nice IPA
  • Maru - Want awesome sushi? Go here. Located east of campus in Okemos, MI you will find this gem of a sushi place. You wouldn’t have a strong prior on finding good sushi in Michigan, but this is really good. Try the sexy bacon roll because it has smoked bacon in it and who doesn’t love bacon?
  • Pizza House - Seriously good pizza and a solid selection of craft beer. Their “Chicago” style pizza is heavy duty but really good. You won’t need to eat for another week if you have a slice of that. Their standard pizza is really good too.
  • Sansu - Solid sushi but not as “high-end” as Maru. This place has the best lunch special on the planet. Two rolls plus miso and salad for ~$10 can’t be beat.
  • Sindhu - Really good Indian food that has a nice buffet for lunch. They make some of the best naan bread I have experienced and now you can order their food for delivery. Lots of vegetarian options.
  • Sultan’s - Nice Mediterranean cuisine with lots of tasty dishes and you get free bread with you meal that comes out of the oven seconds before landing on your table. Lots of vegetarian and vegan options here.
  • Beggar’s Banquet - Wednesday is half price wine night. I like this place. A little on the pricey side and sometimes they try to be “fine dining” but you can always count on a solid meal. Wednesday is half price wine night. They really ramped up their craft beer selection as well and the bartenders are competant with mixed drinks to boot. Wednesday is half price wine night.
  • Lou and Harry’s - Undergrad food joint. Meh.

Late night

  • Menna’s Joint - The website was not workign when I wrote this. They sell these things called “dubs” which is basically a burrito with non-traditional ingredients.
  • Insomnia Cookies - Up late and need cookies but don’t want to walk/drive/bike to get them? Insomnia will deliver really good cookies to you. A chain, but really good cookies.

Make a map

Now the fun part, code!

First I create a table with the name of the establishment, my rating on a 1-10 scale, and the address.

Make a tibble

Places <- tribble(~Establishment, ~rating, ~address,
  "Soup Spoon", 13, "1419 E Michigan Ave, Lansing, MI 48912", 
  "Chrunchy's", 12, "254 E Grand River Ave, East Lansing, MI 48823",
  "Peanut Barrel", 11, "521 E Grand River Ave, East Lansing, MI 48823",
  "Hop Cat", 9, "300 Grove St, East Lansing, MI 48823",
  "Insomnia", 8, "603 E Grand River Ave, East Lansing, MI 48823",
    "Begger's Banquet", 7, "218 Abbot Road, East Lansing, MI 48823",
  "Landshark", 2, "101 E Grand River Ave, East Lansing, MI 48823",
  "P.T. O'Malleys", 1, "210 Abbott Rd., East Lansing, MI 48823",
  "Harpers", 0, "131 Albert Ave, East Lansing, MI 48823",
  "LouHas", 3, "211 E Grand River Ave, East Lansing, MI 48823",
  "Menna's", 7, "115 Albert Ave East Lansing, MI 48823",
  "Dusty's", 8, " 1857 W Grand River Ave, Okemos, MI 48864",
  "Maru", 8, "5100 Marsh Rd, Okemos, MI 48864", 
  "Pizza House", 7, "4790 S Hagadorn Rd, East Lansing, MI 48823",
  "Sindhu", 8, "4790 S Hagadorn Rd, East Lansing, MI 48823",
  "Sultan's", 7, "4790 S Hagadorn Rd, East Lansing, MI 48823",
  "Woody's Oasis", 8, "1050 Trowbridge Rd, East Lansing, MI 48823"
)

Next, using the handy geocode function from ggmap I extract the latitude and longitude from the data.

geocode

lon_lat <- geocode(Places$address)
lon_lat$rating <- Places$rating

Full map

Now I’ll create a map with all the placed plotted.

Full_map <-  c(mean(lon_lat$lon), mean(lon_lat$lat))

EL_map <-  get_map(location = Full_map, zoom = 12, source = "google")

Let’s select a color scale based on the Inquisitor from Star Wars Rebels using the spaceMovie package.

SW_palette("Inquisitor")

We’ll use the black for low ratings and the red for high.

Places.plot <- ggmap(EL_map) +
  scale_color_gradient("Rating", low = SW_palette("Inquisitor")[3], high = SW_palette("Inquisitor")[1]) + 
  geom_point(data = lon_lat, aes(x = lon, y = lat, color = rating), size = 3) +
  xlab("Longitude") +
  ylab("Latitude")

print(Places.plot)

Downtown map

Now just downtown East Lansing locations (all easily walkable from campus.

downtown <- lon_lat[2:11, ]
downtown_map <-  c(mean(downtown$lon), mean(downtown$lat))

DT_map <-  get_map(location = downtown_map, zoom = 15, source = "google")

DT.plot <- ggmap(DT_map) +
  scale_color_gradient("Rating", low = SW_palette("Inquisitor")[3], high = SW_palette("Inquisitor")[1]) +
  geom_point(data = downtown, aes(x = lon, y = lat, color = rating), size = 3) +
  xlab("Longitude") +
  ylab("Latitude")
print(DT.plot)

Right now the coordinate transformation from geocode is not great at zoom = 15. Oh well. You have the vital information and are smart so I am sure you can find these places.

A note to our Canadian colleagues visiting. There is a Tim Horton’s in East Lansing. You can get Molson or Labatt Blue at most shops and some places have it on tap.

ProTip - Your meeting is at the Kellogg Center. The bar will run out of good beer during your reception. You can walk around the hotel with a beer purchased from the hotel. There is a good bar at the restaurant that serves good beer (often less expensive than the reception). Problem solved.

I need to say that I had so much fun making this post for you. You all should invite me out so I can relive grad school memories (minus the heartbreak, stress, and insane work hours). Go Green!


Share