Reading https://twitter.com/hadleywickham/status/719542847045636096 I understand that the purrr approach should basically replace do.
Hence, I was wondering how I would use purrr to do this:
library(dplyr)
d <- data_frame(n = 1:3)
d %>% rowwise() %>% do(data_frame(x = seq_len(.$n))) %>% ungroup()
# # tibble [6 x 1]
# x
# * <int>
# 1 1
# 2 1
# 3 2
# 4 1
# 5 2
# 6 3
The closest I could get was something like:
library(purrrr)
d %>% mutate(x = map(n, seq_len))
# # A tibble: 3 x 2
# n x
# <int> <list>
# 1 1 <int [1]>
# 2 2 <int [2]>
# 3 3 <int [3]>
map_int would not work. So what is the purrrr way of doing it?
You could do the following:
library(tidyverse)
library(purrr)
d %>% by_row(~data_frame(x = seq_len(.$n))) %>% unnest()
by_row applies a function to each row, storing the result in nested tibbles.
unnest is then used to remove the nesting and to concatenate the tibbles.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With