From afeae8396b1b644a80f60cad2b07196a66782f32 Mon Sep 17 00:00:00 2001 From: hadley Date: Tue, 8 Dec 2015 10:11:53 -0600 Subject: [PATCH] Complete draft of lists chapter --- diagrams/lists-invoke.png | Bin 0 -> 50731 bytes diagrams/lists-map2.png | Bin 0 -> 31147 bytes diagrams/lists-pmap-named.png | Bin 0 -> 45354 bytes diagrams/lists-pmap-unnamed.png | Bin 0 -> 32057 bytes diagrams/lists.graffle | Bin 3976 -> 5887 bytes lists.Rmd | 201 +++++++++++++++++--------------- model-assess.Rmd | 10 ++ 7 files changed, 119 insertions(+), 92 deletions(-) create mode 100644 diagrams/lists-invoke.png create mode 100644 diagrams/lists-map2.png create mode 100644 diagrams/lists-pmap-named.png create mode 100644 diagrams/lists-pmap-unnamed.png diff --git a/diagrams/lists-invoke.png b/diagrams/lists-invoke.png new file mode 100644 index 0000000000000000000000000000000000000000..e3278fab58fe6e9f0f48d60f4ea2e3024a251368 GIT binary patch literal 50731 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 literal 0 HcmV?d00001 diff --git a/diagrams/lists-map2.png b/diagrams/lists-map2.png new file mode 100644 index 0000000000000000000000000000000000000000..cd3a9a84381615a9ba375e8e608336119c3af74d GIT binary patch literal 31147 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 literal 0 HcmV?d00001 diff --git a/diagrams/lists-pmap-unnamed.png b/diagrams/lists-pmap-unnamed.png new file mode 100644 index 0000000000000000000000000000000000000000..c463cfad0bdb1cafc1d60ac99cf756240e113bc9 GIT binary patch literal 32057 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 +There are a few shortcuts that you can use with `.f` in order to save a little typing. Imagine you want to fit a linear model to each individual in a dataset. The following toy example splits the up the `mtcars` dataset in to three pieces (only for each value of cylinder) and fits the same linear model to each piece: ```{r} models <- mtcars %>% @@ -348,8 +356,6 @@ models <- mtcars %>% map(function(df) lm(mpg ~ wt, data = df)) ``` -(Fitting many models is a powerful technique which we'll come back to in the case study at the end of the chapter.) - The syntax for creating an anonymous function in R is quite verbose so purrr provides a convenient shortcut: a one-sided formula. ```{r} @@ -360,7 +366,7 @@ models <- mtcars %>% Here I've used `.` as a pronoun: it refers to the "current" list element (in the same way that `i` referred to the number in the for loop). You can also use `.x` and `.y` to refer to up to two arguments. If you want to create an function with more than two arguments, do it the regular way! -When you're looking at many models, you might want to extract a summary static like the $R^2$. To do that we need to first run `summary()` and then extract the component called `r.squared`. We could do that using the shorthand for anonymous funtions: +When you're looking at many models, you might want to extract a summary statistic like the $R^2$. To do that we need to first run `summary()` and then extract the component called `r.squared`. We could do that using the shorthand for anonymous funtions: ```{r} models %>% @@ -368,7 +374,7 @@ models %>% map_dbl(~.$r.squared) ``` -But extracting named components is a really common operation, so purrr provides an even shorter shortcut: you can use a string. +But extracting named components is a common operation, so purrr provides an even shorter shortcut: you can use a string. ```{r} models %>% @@ -383,10 +389,6 @@ x <- list(list(1, 2, 3), list(4, 5, 6), list(7, 8, 9)) x %>% map_dbl(2) ``` -### Map applications - -??? - ### Base R If you're familiar with the apply family of functions in base R, you might have noticed some similarities with the purrr functions: @@ -422,8 +424,8 @@ If you're familiar with the apply family of functions in base R, you might have it's a lot of typing: `vapply(df, is.numeric, logical(1))` is equivalent to `map_lgl(df, is.numeric)`. - One of advantage `vapply()` over the map functions is that it can also - produce matrices - the map functions always produce vectors. + One of advantage of `vapply()` over the map functions is that it can also + produce matrices - the map functions only ever produce vectors. * `map_df(x, f)` is effectively the same as `do.call("rbind", lapply(x, f))` but under the hood is much more efficient. @@ -443,18 +445,25 @@ If you're familiar with the apply family of functions in base R, you might have ## Handling hierarchy {#hierarchy} -As you start to use these functions more frequently, you'll find that you start to create quite complex trees. The techniques in this section will help you work with those structures. +The map functions apply a function to every element in a list. They are the most commonly used part of purrr, but not the only part. Since lists are often used to represent complex hierarchies, purrr also provides tools to work with hierarchy: -### Deep nesting +* You can extract deeply nested elements in a single call by supplying + a character vector to the map functions. -Some times you get data structures that are very deeply nested. A common source of hierarchical data is JSON from a web API. I've previously downloaded a list of GitHub issues related to this book and saved it as `issues.json`. Now I'm going to load it with jsonlite. By default `fromJSON()` tries to be helpful and simplifies the structure a little. Here I'm going to show you how to do it by hand, so I set `simplifyVector = FALSE`: +* You can remove a level of the hierarchy with the flatten functions. + +* You can flip levels of the hierarchy with the transpose function. + +### Extracting deeply nested elements + +Some times you get data structures that are very deeply nested. A common source of sych data is JSON from a web API. I've previously downloaded a list of GitHub issues related to this book and saved it as `issues.json`. Now I'm going to load it into a list with jsonlite. By default `fromJSON()` tries to be helpful and simplifies the structure a little for you. Here I'm going to show you how to do it with purrr, so I set `simplifyVector = FALSE`: ```{r} # From https://api.github.com/repos/hadley/r4ds/issues issues <- jsonlite::fromJSON("issues.json", simplifyVector = FALSE) ``` -There are eight issues, and each issue has a nested structure. +There are eight issues, and each issue is a nested list: ```{r} length(issues) @@ -477,24 +486,24 @@ users %>% map_chr("login") users %>% map_int("id") ``` -Or by using a character vector, you can do it in one: +But by supplying a character _vector_ to `map_*`, you can do it in one: ```{r} issues %>% map_chr(c("user", "login")) issues %>% map_int(c("user", "id")) ``` -This is particularly useful when you want to pull one element out of a deeply nested data structure. - ### Removing a level of hierarchy As well as indexing deeply into hierarchy, it's sometimes useful to flatten it. That's the job of the flatten family of functions: `flatten()`, `flatten_lgl()`, `flatten_int()`, `flatten_dbl()`, and `flatten_chr()`. In the code below we take a list of lists of double vectors, then flatten it to a list of double vectors, then to a double vector. ```{r} x <- list(list(a = 1, b = 2), list(c = 3, d = 4)) -x %>% str() -x %>% flatten() %>% str() -x %>% flatten() %>% flatten_dbl() +str(x) + +y <- flatten(x) +str(y) +flatten_dbl(y) ``` Graphically, that sequence of operations looks like: @@ -503,7 +512,7 @@ Graphically, that sequence of operations looks like: Whenever I get confused about a sequence of flattening operations, I'll often draw a diagram like this to help me understand what's going on. -Base R has `unlist()`, but I recommend avoiding it for the same reason I recommend avoiding `sapply()`: it always succeeds. Even if you data structure accidentally changes, `unlist()` will continue to work silently giving the wrong answer. +Base R has `unlist()`, but I recommend avoiding it for the same reason I recommend avoiding `sapply()`: it always succeeds. Even if your data structure accidentally changes, `unlist()` will continue to work silently the wrong type of output. This tends to create problems that are frustrating to debug. ### Switching levels in the hierarchy @@ -539,12 +548,12 @@ df %>% transpose() %>% str() When you do many operations on a list, sometimes one will fail. When this happens, you'll get an error message, and no output. This is annoying: why does one failure prevent you from accessing all the other successes? How do you ensure that one bad apple doesn't ruin the whole barrel? -In this section you'll learn how to deal this situation with a new function: `safely()`. `safely()` is an adverb: it takes a function modifies it. In this case, the modified function never throws an error and always succeeds. Instead, it returns a list with two elements: +In this section you'll learn how to deal this situation with a new function: `safely()`. `safely()` is an adverb: it takes a function (a verb) and returns a modified version. In this case, the modified function will never throw an error. Instead, it always returns a list with two elements: -1. `result`: the original result. If there was an error, this will be `NULL`. +1. `result` is original result. If there was an error, this will be `NULL`. -1. `error`: the text of the error if it occured. If the operation was - successful this will be `NULL`. +1. `error` is an error object. If the operation was successful this will be + `NULL`. (You might be familiar with the `try()` function in base R. It's similar, but because it sometimes returns the original result and it sometimes returns an error object it's more difficult to work with.) @@ -556,13 +565,13 @@ str(safe_log(10)) str(safe_log("a")) ``` -When the function succeeds the `result` element contains the result and the error element is empty. When the function fails, the result element is empty and the error element contains the error. +When the function succeeds the `result` element contains the result and the error element is `NULL`. When the function fails, the result element is `NULL` and the error element contains an error object. -This makes it natural to work with map: +`safely()` is designed to work with map: ```{r} x <- list(1, 10, "a") -y <- x %>% map(safe_log) +y <- x %>% map(safely(log)) str(y) ``` @@ -581,20 +590,18 @@ x[!is_ok] y$result[is_ok] %>% flatten_dbl() ``` -(Note that you should always check that the error is null, not that the result is not-null. Sometimes the correct response is `NULL`.) +Purrr provides two other useful adverbs: -Other related functions: - -* `possibly()`: if you don't care about the error message, and instead - just want a default value on failure. +* Like `safely()`, `possibly()` always succeeds. It's simpler than `safely()`, + because you give it a default value to return when there is an error. ```{r} x <- list(1, 10, "a") x %>% map_dbl(possibly(log, NA_real_)) ``` -* `quietly()`: does a similar job but for other outputs like printed - ouput, messages, and warnings. +* `quietly()` performs a similar role to `safely()`, but instead of capturing + errors, it captures printed output, messages, and warnings: ```{r} x <- list(1, -1) @@ -610,7 +617,7 @@ Other related functions: files <- dir("data", pattern = "\\.csv$") files %>% set_names(., basename(.)) %>% - map_df(readr::read_csv, .id = "filename") %>% + map_df(safely(readr::read_csv), .id = "filename") %>% ``` ## Parallel maps @@ -618,18 +625,22 @@ Other related functions: So far we've mapped along a single list. But often you have mutliple related lists that you need iterate along in parallel. That's the job of the `map2()` and `pmap()` functions. For example, imagine you want to simulate some random normals with different means. You know how to do that with `map()`: ```{r} -mu <- c(5, 10, -3) +mu <- list(5, 10, -3) mu %>% map(rnorm, n = 10) ``` What if you also want to vary the standard deviation? You need to iterate along a vector of means and a vector of standard deviations in parallel. That's a job for `map2()` which works with two parallel sets of inputs: ```{r} -sd <- c(1, 5, 10) -map2(mu, sd, rnorm, n = 10) +sigma <- list(1, 5, 10) +map2(mu, sigma, rnorm, n = 10) ``` -Note that arguments that vary for each call come before the function name, and arguments that are the same for every function call come afterwards. +`map2()` generates this series of function calls: + +`r bookdown::embed_png("diagrams/lists-map2.png", dpi = 220)` + +The arguments that vary for each call come before the function name, and arguments that are the same for every function call come afterwards. Like `map()`, `map2()` is just a wrapper around a for loop: @@ -643,28 +654,38 @@ map2 <- function(x, y, f, ...) { } ``` -You could imagine `map3()`, `map4()`, `map5()`, `map6()` etc, but that would get tedious quickly. Instead, purrr provides `pmap()` which takes a list of arguments. You might use that if you wanted to vary the mean, standard deviation, and number of samples: +You could also imagine `map3()`, `map4()`, `map5()`, `map6()` etc, but that would get tedious quickly. Instead, purrr provides `pmap()` which takes a list of arguments. You might use that if you wanted to vary the mean, standard deviation, and number of samples: ```{r} -n <- c(1, 3, 5) -pmap(list(n, mu, sd), rnorm) +n <- list(1, 3, 5) +args1 <- list(n, mu, sigma) +args1 %>% pmap(rnorm) %>% str() ``` +That looks like: + +`r bookdown::embed_png("diagrams/lists-pmap-unnamed.png", dpi = 220)` + However, instead of relying on position matching, it's better to name the arguments. This is more verbose, but it makes the code clearer. ```{r} -pmap(list(mean = mu, sd = sd, n = n), rnorm) +args2 <- list(mean = mu, sd = sigma, n = n) +args2 %>% pmap(rnorm) %>% str() ``` +That generates longer, but safer, calls: + +`r bookdown::embed_png("diagrams/lists-pmap-named.png", dpi = 220)` + Since the arguments are all the same length, it makes sense to store them in a data frame: ```{r} -params <- dplyr::data_frame(mean = mu, sd = sd, n = n) +params <- dplyr::data_frame(mean = mu, sd = sigma, n = n) params$result <- params %>% pmap(rnorm) params ``` -As soon as your code gets complicated, I think a data frame is a good approach because it ensures that each column has a name and is the same length as all the other columns. +As soon as your code gets complicated, I think a data frame is a good approach because it ensures that each column has a name and is the same length as all the other columns. We'll come back to this idea when we explore the intersection of dplyr, purr, and model fitting. ### Invoking different functions @@ -682,12 +703,14 @@ param <- list( To handle this case, you can use `invoke_map()`: ```{r} -invoke_map(f, param, n = 5) +invoke_map(f, param, n = 5) %>% str() ``` -The first argument is a list of functions or character vector of function names, the second argument is a list of lists giving the arguments that vary for each function. The subsequent arguments are passed on to every function. +`r bookdown::embed_png("diagrams/lists-invoke.png")` -You can use `dplyr::frame_data()` to create these matching pairs a little easier: +The first argument is a list of functions or character vector of function names. The second argument is a list of lists giving the arguments that vary for each function. The subsequent arguments are passed on to every function. + +You can use `dplyr::frame_data()` to make creating these matching pairs a little easier: ```{r, eval = FALSE} # Needs dev version of dplyr @@ -702,9 +725,18 @@ sim %>% dplyr::mutate( ) ``` -### Walk {#walk} +## Walk {#walk} -Walk is useful when you want to call a function for its side effects. It returns its input, so you can easily use it in a pipe. Here's an example: +Walk is an alternative to map that you use when you want to call a function for its side effects, rather than for its return value. You typically do this because you want to render output to the screen or saving files to disk - the important thing is the action, not the return value. Here's a very simple example: + +```{r} +x <- list(1, "a", 3) + +x %>% + walk(print) +``` + +`walk()` is generally not that useful compared to `walk2()` or `pwalk()`. For example, if you had a list of plots and a vector of file names, you could use `pwalk()` to save each file to the corresponding location on disk: ```{r} library(ggplot2) @@ -716,13 +748,7 @@ paths <- paste0(names(plots), ".pdf") pwalk(list(paths, plots), ggsave, path = tempdir()) ``` -`walk()`, `walk2()` and `pwalk()` all invisibly return the first argument. This makes it easier to use them in chains. The following example prints - -```{r, eval = FALSE} -plots %>% - walk(print) %>% - walk2(paths, ~ggsave(.y, .x, path = tempdir())) -``` +`walk()`, `walk2()` and `pwalk()` all invisibly return the `.x`, the first argument. This makes them suitable for use in the middle of pipelines. ## Predicates @@ -740,7 +766,7 @@ col_sum <- function(df, f) { } ``` -`is_numeric()` is a __predicate__: a function that returns `TRUE` or `FALSE`. There are a number of of purrr functions designed to work specifically with predicates: +`is_numeric()` is a __predicate__: a function that returns either `TRUE` or `FALSE`. There are a number of of purrr functions designed to work specifically with predicates: * `keep()` and `discard()` keeps/discards list elements where the predicate is true. @@ -829,12 +855,3 @@ is_bare_integer(y) 1. Carefully read the documentation of `is.vector()`. What does it actually test for? - -## Data frames - -i.e. how do dplyr and purrr intersect. - -* Why use a data frame? -* List columns in a data frame -* Mutate & filter. -* Creating list columns with `group_by()` and `do()`. diff --git a/model-assess.Rmd b/model-assess.Rmd index f7e3f00..16e8342 100644 --- a/model-assess.Rmd +++ b/model-assess.Rmd @@ -14,6 +14,16 @@ options(digits = 3) * Bootstrapping to understand uncertainty in parameters. * Cross-validation to understand predictive quality. + +## Purrr + dplyr + +i.e. how do dplyr and purrr intersect. + +* Why use a data frame? +* List columns in a data frame +* Mutate & filter. +* Creating list columns with `group_by()` and `do()`. + ## Multiple models A natural application of `map2()` is handling test-training pairs when doing model evaluation. This is an important modelling technique: you should never evaluate a model on the same data it was fit to because it's going to make you overconfident. Instead, it's better to divide the data up and use one piece to fit the model and the other piece to evaluate it. A popular technique for this is called k-fold cross validation. You randomly hold out x% of the data and fit the model to the rest. You need to repeat this a few times because of random variation.