Loops and beyond: Elegant iteration with the purrr package