I try to do a power simulation with an outcome variable that is zero-inflated. So I use a negative binomial distribution. What I need is the following distribution:

```
library(tidyverse)
set.seed(123)
rt_random <-
rnbinom(n = 2000, mu = 25, size = .9)
qplot(rt_random)
```

Now, I tried to create a function where I can use different sample sizes for the power simulation. I use the `pmap`

function for this. However this does not seem to work. The final distribution is not zero-inflated at all and the mean is not close to the defined mean:

```
generate_distribution <- function(n, mus, sizes){
tibble(n = n,
t_mu = mus,
t_size = sizes)%>%
mutate(rt = pmap(list(n, t_mu, t_size),
~rnbinom(..1, ..2, ..3))) %>%
unnest(rt)
}
set.seed(123)
rt_df <-
generate_distribution(n = 2000,
mus = 25,
sizes = .9)
qplot(rt_df$rt)
```

Is there an easy way to change my code so that I get the desired distribution?

### >Solution :

The problem is that in your lambda function, you are not using the argument names for `rnbinom`

. The default order for the arguments if you don’t name them is `n, size, prob, mu`

, so you are passing 2000 to `n`

, 25 to `size`

and 0.9 to `prob`

. Just name the arguments explicitly as you did in your first example, and your code will work.

```
generate_distribution <- function(n, mus, sizes){
tibble(n = n,
t_mu = mus,
t_size = sizes)%>%
mutate(rt = pmap(list(n, t_mu, t_size),
~rnbinom(n = ..1, mu = ..2, size = ..3))) %>%
unnest(rt)
}
set.seed(123)
rt_df <-
generate_distribution(n = 2000,
mus = 25,
sizes = .9)
qplot(rt_df$rt)
```