dplr: удалить столбец матрицы - PullRequest
1 голос
/ 29 мая 2019

Я пытаюсь понять invoke_map.В этом случае я имитирую 30 двумерных случайных нормальных наблюдений и назначаю их в поле группировки для последующего использования, моделирующего случайный перехват и наклон.

Все просто, пока мне не придется раскатывать столбец матрицы.

Главное, что строка mutate(u1,u2) кажется более сложной, чем она должна быть.Что я должен сделать вместо этого?

library(dplyr)
library(mvtnorm)
N <- 30
# Simulate two correlated random normal variables into a tibble
var_u1    <-  0.0005
var_u2    <-  0.010
cov_u1_u2 <- -0.0002

SIGMA <-  matrix(c(var_u1, cov_u1_u2, cov_u1_u2, var_u2), nrow = 2) 
sim_u <- dplyr::tribble(
  ~f, ~params,
  'rmvnorm', list(n = N, mean = c(0,0), sigma = SIGMA)  
)
u <- sim_u %>% 
  mutate(u = purrr::invoke_map(f,params))   %>% 
  mutate(u0 =  purrr::map(u,`[`,i=,j=1),
         u1 =  purrr::map(u,`[`,i=,j=2))     %>% 
  tidyr::unnest(u0,u1) %>% 
  mutate(lab = 1:N) %>% 
  select(lab,u0,u1)
u
...