У меня есть столбец, в котором один столбец представляет собой список элементов. Некоторые тиблы в этом списке имеют более одной строки. Вот минимальный пример:
library(tibble)
tmp <- tribble(
~x, ~y,
1, tibble(a=1, b=2),
2, tibble(a=4:5, b=6:7))
, который производит
> tmp
# A tibble: 2 x 2
x y
<dbl> <list>
1 1 <tibble [1 x 2]>
2 2 <tibble [2 x 2]>
Я хочу создать тиббл, который имеет то же количество строк, что и tmp
, и расширяет столбец списка в столько столбцов, сколько необходимо. В этом примере я хочу
x a1 a2 b1 b2
<int> <dbl> <dbl> <dbl> <dbl>
1 1 1 NA 2 NA
2 2 4 5 6 7
Я думал сделать это с некоторой комбинацией unnest()
и pivot_wider()
или, возможно, flatten()
, но я не могу заставить его работать. Каков наилучший способ сделать это?
В этом примере столбцы в столбце списка никогда не имеют более двух строк. Но в моем реальном списке-столбцах некоторые столбцы имеют одну строку, некоторые - две, а некоторые - более двух. Поэтому я ищу решение, которое работает, когда в столбцах списка есть произвольное количество строк.