I am performing eigen decomposition on a a posterior distribution of 4x4 variance-covariance matrices. To do this I use the `eigen` function in a dplyr/tidyverse pipeline:

```
set.seed(1)
# Variance and covariances of 4 variables
A1  <- rnorm(1000,10,1)
A2  <- rnorm(1000,10,1)
A3  <- rnorm(1000,10,1)
A4  <- rnorm(1000,10,1)
C12 <- rnorm(1000,0,1)
C13 <- rnorm(1000,0,1)
C14 <- rnorm(1000,0,1)
C23 <- rnorm(1000,0,1)
C24 <- rnorm(1000,0,1)
C34 <- rnorm(1000,0,1)

# Create posterior tibble
w1_post <- as_tibble(cbind(A1, C12, C13, C14, A2, C23, C24, A3, C34, A4))

# Get 1st-4th eigenvalues of each variance-covariance matrix
w1_post %>%
  rowwise %>%
    mutate(
      eig1 = 
        eigen(matrix(c(A1, C12, C13, C14, C12, A2, C23, C24, C13, C23,
          A3, C34, C14, C24, C34, A4), nrow = 4))[[1]][1],
      eig2 = 
        eigen(matrix(c(A1, C12, C13, C14, C12, A2, C23, C24, C13, C23,
          A3, C34, C14, C24, C34, A4), nrow = 4))[[1]][2],
      eig3 = 
        eigen(matrix(c(A1, C12, C13, C14, C12, A2, C23, C24, C13, C23,
          A3, C34, C14, C24, C34, A4), nrow = 4))[[1]][3],
      eig4 = 
        eigen(matrix(c(A1, C12, C13, C14, C12, A2, C23, C24, C13, C23,
          A3, C34, C14, C24, C34, A4), nrow = 4))[[1]][4]) %>%
  select(starts_with('eig')) -> eig_post

```

Producing

```
> eig_post
Source: local data frame [1,000 x 4]
Groups: <by row>

# A tibble: 1,000 x 4
    eig1  eig2  eig3  eig4
   <dbl> <dbl> <dbl> <dbl>
 1  12.3 11.0  10.4   6.67
 2  12.8 10.1   9.19  7.61
 3  13.5 12.2   8.20  7.34
 4  12.7 12.2   8.91  7.68
 5  12.9  9.70  9.41  6.74
 6  12.2 10.6   8.62  7.70
 7  13.1 12.5   9.21  8.34
 8  12.9  9.76  7.87  6.96
 9  12.8 11.6   8.21  6.46
10  12.5 11.6   9.85  8.13
# ... with 990 more rows

```

As you can see, this is performing the eigen decomposition four times per row - that's 4x more than is really necessary and slowing down my script! **Can I get a dplyr/tidyverse pipe to mutate multiple variables at once, spreading the vector produced by `eigen(*matrix*)[[1]][1:4]` across the four variables?** So I need to get what the above code produces, but only doing one eigen decomposition per row. I thought something like this would work but no luck:

```
w1_post %>%
  rowwise %>%
    mutate(c(eig1, eig2, eig3, eig4) = 
      eigen(matrix(c(A1, C12, C13, C14, C12, A2, C23, C24, C13, C23,
        A3, C34, C14, C24, C34, A4), nrow = 4))[[1]][1:4]) %>%
  select(starts_with('eig')) -> eig_post

```