Генерация значений для функций, созданных с помощью purrr: map - PullRequest
1 голос
/ 01 мая 2019

Я пытаюсь использовать purrr:map для создания эмпирических совокупных процентов для значений x_var в df, уникальных для каждого уровня факторной переменной.

В идеале, я бы хотел, чтобы результатом был длинный df, в котором столбцы выглядят следующим образом:

level (long) |x_var |epcd_val

Вот пример:

# load packs
if(!require("pacman"))install.packages("pacman")
p_load(dplyr, tibble, purrr)

# generate fake data
samp_dat <- tibble(
x_var = rnorm (1000, 0, 1),
levels = sample(LETTERS[1:4], 1000, replace=TRUE, prob=c(0.25, 0.50, 0.125, 0.125)))

# generates a list of ecdf functions for each level
ecdfs <- samp_dat %>%
  group_split(levels) %>%
  map(., ~ ecdf(.x$x_var)) 

Результирующий ecdfs представляет собой список функций edcf, который уникален для каждого уровня внутри уровней.

Мне как-то нужно передать значения x_var, сгруппированные по уровням, обратно в эту функцию.Тем не менее, я застрял на том, как снять его с труб.

1 Ответ

1 голос
/ 01 мая 2019

ecdf выводит функцию, поэтому мы подаем 'x_var' в функцию вывода после группировки по 'level'

library(dplyr)
samp_dat %>% 
    group_by(levels) %>%
    mutate(newval = ecdf(x_var)(x_var))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...