Unnest com listas de tamanhos diferentes

Oi pessoal,

Eu tenho um data frame (simplificado) que fica assim:

A tibble: 10 x 2

variable_name values
chr dbl
1 eye_Y 2.36e16
2 eye_Y 2.56e 9
3 eye_Y 2.91e 5
4 eye_Y 3.08e 8
5 eye_Y 2.54e16
6 eye_Y 3.82e 7
7 eye_X 3.36e 9
8 eye_X 3.86e 8
9 eye_X 3.07e 7
10 eye_X 1.48e 7

Quando eu faço pivot_wider(names_from = variable_name, values_from = values), fica assim:

eye_Y eye_X

1 <dbl [6]> <dbl [4]>

Eu queria conseguir aplicar um unnest para que esses vetores fiquem lado a lado, e que a diferença de tamanho deles seja resolvido colocando NA no fim do eye_X. Teria como? Procurei bastante mas nenhuma solução resolveu meu problema.
Valeu!

É que tá faltando uma coluna informando o “id” pra parear. Como não existe, eu criei uma fictícia pra fazer o efeito que vc deseja. Atenção que ele tá pareando meio que aleatoriamente (ao menos que vc saiba que a ordenação das suas linhas na base estejam conforme uma regra que vc sabe qual é!).

library(tidyverse)
library(tidyr)

df <- tribble(
    ~variable_name, ~values,
    "eye_Y", 2.36,
    "eye_Y", 2.56,
    "eye_Y", 2.91,
    "eye_Y", 3.08,
    "eye_Y", 2.54,
    "eye_Y", 3.82,
    "eye_X", 3.36,
    "eye_X", 3.86,
    "eye_X", 3.07,
    "eye_X", 1.48
)

df %>%
    group_by(variable_name) %>%
    mutate(id = 1:n()) %>%
    pivot_wider(
        names_from = variable_name, 
        values_from = values
    )
#> # A tibble: 6 x 3
#>      id eye_Y eye_X
#>   <int> <dbl> <dbl>
#> 1     1  2.36  3.36
#> 2     2  2.56  3.86
#> 3     3  2.91  3.07
#> 4     4  3.08  1.48
#> 5     5  2.54 NA   
#> 6     6  3.82 NA

Created on 2020-06-22 by the reprex package (v0.3.0)

1 curtida

Valeu, Athos! Show de bola!