我正在尝试使用pivot_longer
包中的tidyr
将多个列表列彼此堆叠,但是我一直遇到错误。这是一个简单的例子...
tibble(
date = c(rep(1,500), rep(2,500)),
size = runif(1000,10,10000),
var1 = rnorm(1000),
var2 = rnorm(1000)
) %>%
group_by(date) %>%
nest() %>%
rename(all = data) %>%
mutate(
not_tiny = map(all, filter, size >= 1000),
large = map(all, filter, size >= 5000)
) %>%
pivot_longer(c(all, not_tiny, large), names_to = "subset", values_to = "data")
如果我尝试运行此命令,则错误提示
Error: No common type for `all` <list_of<
tbl_df<
size: double
var1: double
var2: double
>
>> and `not_tiny` <list>.
所需的输出是
# A tibble: 6 x 3
# Groups: date [2]
date subset data
<dbl> <chr> <list>
1 1 all <tibble [500 × 3]>
2 2 all <tibble [500 × 3]>
3 1 not_tiny <tibble [448 × 3]>
4 2 not_tiny <tibble [451 × 3]>
5 1 large <tibble [239 × 3]>
6 2 large <tibble [264 × 3]>
这是gather
所取代的不再受支持的pivot_longer
函数的输出。任何想法将不胜感激。