Equivalent to rowwise () do () with purrr, now when by_row () is depreciating?

Now that by_row () in purrr will (is?) Depreciate, what is the new preferred tevere implementation:

somedata = expand.grid(a=1:3,b=3,c=runif(3))
somedata %>%
  rowwise() %>% do(binom.test(x=.$a,n=.$b,p=.$c) %>% tidy())

It seems that you can nest each row in one column and then use map (), but I'm not sure how to do this nesting ... plus it seems like this is a bit unclear. Is there a better way?

+6
source share
1 answer

Here is one way: map

library(tidyverse)
library(broom)
do.call(Map, c(f = binom.test, unname(somedata))) %>%
      map_df(tidy)
#  estimate statistic    p.value parameter    conf.low conf.high              method alternative
#1 0.3333333         1 1.00000000         3 0.008403759 0.9057007 Exact binomial test   two.sided
#2 0.6666667         2 0.25392200         3 0.094299324 0.9915962 Exact binomial test   two.sided
#3 1.0000000         3 0.03571472         3 0.292401774 1.0000000 Exact binomial test   two.sided
#4 0.3333333         1 0.14190440         3 0.008403759 0.9057007 Exact binomial test   two.sided
#5 0.6666667         2 0.55583967         3 0.094299324 0.9915962 Exact binomial test   two.sided
#6 1.0000000         3 1.00000000         3 0.292401774 1.0000000 Exact binomial test   two.sided
#7 0.3333333         1 0.58810045         3 0.008403759 0.9057007 Exact binomial test   two.sided
#8 0.6666667         2 1.00000000         3 0.094299324 0.9915962 Exact binomial test   two.sided
#9 1.0000000         3 0.25948735         3 0.292401774 1.0000000 Exact binomial test   two.sided

Or only with tidyversefunctions

somedata %>%
     unname %>%
     pmap(binom.test) %>% 
     map_df(tidy)
#estimate statistic    p.value parameter    conf.low conf.high              method alternative
#1 0.3333333         1 1.00000000         3 0.008403759 0.9057007 Exact binomial test   two.sided
#2 0.6666667         2 0.25392200         3 0.094299324 0.9915962 Exact binomial test   two.sided
#3 1.0000000         3 0.03571472         3 0.292401774 1.0000000 Exact binomial test   two.sided
#4 0.3333333         1 0.14190440         3 0.008403759 0.9057007 Exact binomial test   two.sided
#5 0.6666667         2 0.55583967         3 0.094299324 0.9915962 Exact binomial test   two.sided
#6 1.0000000         3 1.00000000         3 0.292401774 1.0000000 Exact binomial test   two.sided
#7 0.3333333         1 0.58810045         3 0.008403759 0.9057007 Exact binomial test   two.sided
#8 0.6666667         2 1.00000000         3 0.094299324 0.9915962 Exact binomial test   two.sided
#9 1.0000000         3 0.25948735         3 0.292401774 1.0000000 Exact binomial test   two.sided
+5
source

All Articles