如何使用R调整数据结构 实现宽表转指定格式长表
问题内容
我当前的数据结构如下:
# A tibble: 92 × 9 state category `1978` `1983` `1988` `1993` `1999` `2006` `2013` <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> 1 Alabama Jail population 3,642 3,838 4,363 7,873 9,327 11,430 10,436 2 Alabama Percent pre-trial 28% 47% 57% 48% 58% 70% 68%
期望得到的目标数据结构如下:
state jail pretrial year Alabama 3642 28% 1978 Alabama 3838 47% 1983 Alabama 4363 57% 1988 Alabama 7873 48% 1993 Alabama 9327 58% 1999 Alabama 11430 70% 2006 Alabama 10436 68% 2013
我多次尝试使用dplyr的pivot_wider / pivot_longer函数进行调整,得到的结果已经接近预期但始终无法完全符合要求,在此问题上花费了大量时间仍未解决。我不需要直接的可运行代码方案,目前甚至找不到同类参考案例,请问这类数据转换操作的通用名称是什么?我可以自行搜索相关内容学习实现,只是不清楚该搜索什么关键词。
解答
这类操作属于多指标表格的组合重塑场景,你可以搜索以下关键词找到对应学习资料:
- 宽表转长表后再转宽表 / 数据逆透视+透视组合操作
pivot_longer+pivot_wider组合使用- 多指标面板数据格式转换
- tidyr 半结构化表格整形
操作逻辑本质是先把所有年度列通过pivot_longer拉平为「年份-数值」的长结构,再通过pivot_wider将category列的不同指标值转为新的列名,对应匹配各自的数值即可得到目标结构。
内容的提问来源于stack exchange,提问作者Jason Costello
相关产品推荐
相关产品推荐

