Я моделирую события из следующей таблицы data
, используя функцию map
и отфильтровываю zero
значение события.
Однако я бы хотел выполнить фильтрацию внутри функции map
, уменьшив тем самым размер создаваемой таблицы event
.
Следующее имитирует events
на основе распределения Пуассона для заданного среднего значения (оно включает freq = 0
, но для управления памятью я этого не хочу):
library(tidyverse)
set.seed(1); n <- 10
data <- tibble(locid = seq(5), exp = 2)
event <- data %>%
mutate(freq = map(exp, ~rpois(n, .x))) %>%
mutate(freq = map(freq, ~ data.frame(freq = .x, sim = seq_along(.x)))) %>%
unnest()
Затем я могу отфильтровать с помощью event %>% filter(freq != 0)
. Как я могу вставить это в функцию map
, пожалуйста? Это сделает объем памяти более управляемым для моего кода. Спасибо!