Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@mrecos
Created December 3, 2019 23:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mrecos/228da7f6e694aca355c9b602e23924f2 to your computer and use it in GitHub Desktop.
Save mrecos/228da7f6e694aca355c9b602e23924f2 to your computer and use it in GitHub Desktop.
Quick example of purrr::nest analysis
library(tidyverse)
g <- glimpse
g(iris)
dat <- iris %>%
nest(data = c(-Species))
dat$data[[1]]
lapply(dat$data, nrow)
map_int(dat$data, nrow)
dat2 <- dat %>%
mutate(nrow = map(data, nrow))
dat2 <- dat %>%
mutate(nrow = map_dbl(data, nrow))
dat3 <- dat2 %>%
mutate(lm = map(data,
function(.x) lm(Sepal.Length ~ ., data = .x)))
dat3$lm[[1]]
dat4 <- dat3 %>%
mutate(pred = map(lm, ~predict(.x)))
dat4$pred[[1]]
== <- dat4 %>%
mutate(MAE = map2_dbl(data,pred,
function(.x,.y) mean(abs(.x$Sepal.Length - .y))))
### All together
dat <- iris %>%
nest(data = c(-Species)) %>%
mutate(nrow = map_dbl(data, nrow),
lm = map(data, function(.x) lm(Sepal.Length ~ ., data = .x)),
pred = map(lm, function(.x) predict(.x)),
MAE = map2_dbl(data,pred,
function(.x,.y) mean(abs(.x$Sepal.Length - .y))))
dat_plot <- dat %>%
select(-lm) %>%
unnest(cols = c(data, pred))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment