Just test if the code of this Rstudio’s article works or not: http://blog.rstudio.org/2015/09/29/purrr-0-1-0/
library(purrr)
library(dplyr)
##
## Attaching package: 'dplyr'
##
## The following object is masked from 'package:purrr':
##
## order_by
##
## The following objects are masked from 'package:stats':
##
## filter, lag
##
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
random_group <- function(n, probs) {
probs <- probs / sum(probs)
g <- findInterval(seq(0, 1, length = n), c(0, cumsum(probs)),
rightmost.closed = TRUE)
names(probs)[sample(g)]
}
partition <- function(df, n, probs) {
n %>%
replicate(split(df, random_group(nrow(df), probs)), FALSE) %>%
zip_n() %>%
as_data_frame()
}
msd <- function(x, y) sqrt(mean((x - y) ^ 2))
This works:
cv <- mtcars %>%
partition(100, c(training = 0.8, test = 0.2)) %>%
mutate(
# Fit the model
model = map(training, ~ lm(mpg ~ wt, data = .)),
# Make predictions on test data
pred = map2(model, test, predict),
# Calculate mean squared difference
diff = map2(pred, test %>% map("mpg"), msd) %>% flatten()
)
devtools::session_info()
## Session info --------------------------------------------------------------
## setting value
## version R version 3.2.2 (2015-08-14)
## system x86_64, mingw32
## ui RTerm
## language en
## collate Japanese_Japan.932
## tz Asia/Tokyo
## date 2015-10-04
## Packages ------------------------------------------------------------------
## package * version date source
## assertthat 0.1 2013-12-06 CRAN (R 3.2.0)
## DBI 0.3.1 2014-09-24 CRAN (R 3.2.0)
## devtools 1.9.1 2015-09-11 CRAN (R 3.2.2)
## digest 0.6.8 2014-12-31 CRAN (R 3.2.0)
## dplyr * 0.4.3.9000 2015-09-16 Github (hadley/dplyr@00a0a74)
## evaluate 0.8 2015-09-18 CRAN (R 3.2.2)
## formatR 1.2.1 2015-09-18 CRAN (R 3.2.2)
## htmltools 0.2.6 2014-09-08 CRAN (R 3.2.0)
## knitr 1.11 2015-08-14 CRAN (R 3.2.2)
## lazyeval 0.1.10 2015-01-02 CRAN (R 3.2.0)
## magrittr 1.5 2014-11-22 CRAN (R 3.2.0)
## memoise 0.2.1 2014-04-22 CRAN (R 3.2.0)
## purrr * 0.1.0 2015-09-28 CRAN (R 3.2.2)
## R6 2.1.1 2015-08-19 CRAN (R 3.2.2)
## Rcpp 0.12.1 2015-09-10 CRAN (R 3.2.2)
## rmarkdown 0.8 2015-08-30 CRAN (R 3.2.2)
## stringi 0.5-5 2015-06-29 CRAN (R 3.2.1)
## stringr 1.0.0 2015-04-30 CRAN (R 3.2.0)
## yaml 2.1.13 2014-06-12 CRAN (R 3.2.0)
But, after loading ggplot2, it won’t.
library(ggplot2)
cv <- mtcars %>%
partition(100, c(training = 0.8, test = 0.2)) %>%
mutate(
# Fit the model
model = map(training, ~ lm(mpg ~ wt, data = .)),
# Make predictions on test data
pred = map2(model, test, predict),
# Calculate mean squared difference
diff = map2(pred, test %>% map("mpg"), msd) %>% flatten()
)
## Error in eval(expr, envir, enclos): invalid term in model formula
devtools::session_info()
## Session info --------------------------------------------------------------
## setting value
## version R version 3.2.2 (2015-08-14)
## system x86_64, mingw32
## ui RTerm
## language en
## collate Japanese_Japan.932
## tz Asia/Tokyo
## date 2015-10-04
## Packages ------------------------------------------------------------------
## package * version date source
## assertthat 0.1 2013-12-06 CRAN (R 3.2.0)
## colorspace 1.2-6 2015-03-11 CRAN (R 3.2.0)
## DBI 0.3.1 2014-09-24 CRAN (R 3.2.0)
## devtools 1.9.1 2015-09-11 CRAN (R 3.2.2)
## digest 0.6.8 2014-12-31 CRAN (R 3.2.0)
## dplyr * 0.4.3.9000 2015-09-16 Github (hadley/dplyr@00a0a74)
## evaluate 0.8 2015-09-18 CRAN (R 3.2.2)
## formatR 1.2.1 2015-09-18 CRAN (R 3.2.2)
## ggplot2 * 1.0.1.9003 2015-09-24 Github (hadley/ggplot2@710991b)
## gtable 0.1.2 2012-12-05 CRAN (R 3.2.0)
## htmltools 0.2.6 2014-09-08 CRAN (R 3.2.0)
## knitr 1.11 2015-08-14 CRAN (R 3.2.2)
## lazyeval 0.1.10 2015-01-02 CRAN (R 3.2.0)
## magrittr 1.5 2014-11-22 CRAN (R 3.2.0)
## memoise 0.2.1 2014-04-22 CRAN (R 3.2.0)
## munsell 0.4.2 2013-07-11 CRAN (R 3.2.0)
## plyr 1.8.3 2015-06-12 CRAN (R 3.2.1)
## purrr * 0.1.0 2015-09-28 CRAN (R 3.2.2)
## R6 2.1.1 2015-08-19 CRAN (R 3.2.2)
## Rcpp 0.12.1 2015-09-10 CRAN (R 3.2.2)
## rmarkdown 0.8 2015-08-30 CRAN (R 3.2.2)
## rstudioapi 0.3.1 2015-04-07 CRAN (R 3.2.0)
## scales 0.3.0 2015-08-25 CRAN (R 3.2.2)
## stringi 0.5-5 2015-06-29 CRAN (R 3.2.1)
## stringr 1.0.0 2015-04-30 CRAN (R 3.2.0)
## yaml 2.1.13 2014-06-12 CRAN (R 3.2.0)