In-house statistics for the Vancouver Nighthawks of Major League Ultimate
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


In-house statistics for the Vancouver Nighthawks of Major League Ultimate

To do

  • check systematically for creative entries in clock before/after, i.e. when people only report the second or suddenly report tenths of a second, etc.
  • 2014-04-19_phlSP-at-nykRM point 36: the second event is coded TD instead of PU; the player attempted to catch the pull but dropped it ...that's the first case of this; I need to take a deliberate look at what all my scripts do with that
  • 2014-05-03_bosWC-at-nykRM point 39: the second event is coded TO instead of PU; apparently there was a timeout called even before a pickup; I need to take a deliberate look at what all my scripts do with that
  • take comprehensive look at what's character vs factor
  • sort out the offline access for Google spreadsheet
  • add a comment column have asked MLU to bless this but no response
  • get a handle on which offensive fouls cause posession to change and which ones don't

Makefile notes not updated in a long while ...

  • assuming the GOOGAME and GAME have been set up in the Makefile and are not being passed constantly via command line
  • make clean_raw removes all data extracted from Google spreadsheet, sitting in 01_rawGoogleExtract
  • make eg_pt POINT=7 extracts raw data from the Google worksheet for point 7
  • make eg_all extracts raw data from all worksheets, all points
  • make yo POINT=3 adds Google data for point 3 and reruns all the R stuff
  • make clean_cat cleans out the raw, concatenated Google data, sitting in 03_concatGoogleExtract
  • make cat_goog concatenates the raw Google data across all points
  • make clean_clean cleans out the clean, processed game data, sitting in 04_cleanedGame
  • make clean_game processes the game
  • make web bakes the "now playing" style game webpage
  • make web_copy copies the "now playing" webpage into web
  • make set_web copies the "now playing" webpage to vanNH_nowPlaying.html; ideally this would be just symlinking but I'm having trouble with that and can't troubleshoot now
  • make compile_index compiles web/; should only need to be re-done when new game is added to
  • make r_bits runs all the R scripts
  • make sync syncs web/* to notOcto/vanNH subdirectory of my stat website


  • To pass my Python script a Google spreadsheet name with all sorts of awful spaces and punctuation in it, this will work, i.e. surround it with single quotes

    ./ -gg 'Official Statistics - 2014 - Week 5 - 5/10 - Rainmakers @ Nighthawks' -g 2014-05-10_seaRM-at-vanNH
  • To use my Makefile target to do same, surround it with single AND double quotes

    make eg_all GOOGAME='"Official Statistics - 2014 - Week 5 - 5/10 - Rainmakers @ Nighthawks"' GAME=2014-05-10_seaRM-at-vanNH
  • Note: neither of the above is necessary during live game work because I set a default value for GOOGAME and GAME inside the Makefile now

  • It is evil to record info for offense and defense on the same row of the spreadsheet. MLU likes that for defensive fouls, so I handle that with my own cleaning script.

  • Stay aware 0 vs 00 re seattle rainmakers. Always use 00. Helpful lines for ad hoc checking for either in game play at the end of cleaning and expanding: game_play[with(game_play, grepl("00", pullNum) | grepl("00", recvNum)), ] game_play[with(game_play, grepl("\b0\b", pullNum) | grepl("\b0\b", recvNum)), ]

Helpful for Python command line argument processing:

Python working directory stuff:

File I/O:

Knitting from command line or Makefile: