使用pivot_wider转换tibble时得到列表列而非预期结果求助
问题分析与解决方法
错误原因
你写的!year是告诉pivot_wider不要把year作为分组标识列(id_cols),这就导致函数认为所有行属于同一组,每个term对应的多个estimate值只能被打包成列表列,这就是你看到警告和列表列的原因。
正确写法
你需要让year作为分组依据,把每个年份对应的不同term值拆成单独的列。有两种等价的写法:
- 显式指定分组列:
x %>% pivot_wider(id_cols = year, names_from = term, values_from = estimate)
- 利用默认行为(
pivot_wider会自动把除names_from和values_from之外的列作为分组列),直接省略!year:
x %>% pivot_wider(names_from = term, values_from = estimate)
验证结果
执行上述代码后,就能得到你想要的结构:
# A tibble: 6 x 3 year intercept daysuntilelection <dbl> <dbl> <dbl> 1 2018 -29.8 8.27 2 2019 -50.6 7.40 3 2020 -31.6 6.55 4 2021 -19.0 4.60 5 2022 -10.7 6.41 6 2023 120 0
内容的提问来源于stack exchange,提问作者Rob Hanssen
相关产品推荐
相关产品推荐

