宽 —> 长
使用 pivot_longer() 可以讲宽数据转换为长数据:
table4a |> pivot_longer(cols = 2:3, names_to = 'year', values_to = 'cases')其中:
cols指定修改的列,可以使用负索引,可以使用字符串处理-stringr 的方法,比如starts_with()等等names_to系列可以改变列名,默认是values和name
billboard |>
+pivot_longer(cols = starts_with("wk"), names_prefix = "wk", names_to = "week", values_to = "rank", values_drop_na = TRUE)长 —> 宽
将长数据转换为宽数据(使用 pivot_wider())的主要应用价值在于:
- 提高数据可读性:将多行合并为一行,使数据更紧凑,便于人类阅读和比较。
- 适配分析工具:许多统计模型和可视化工具(如线性回归、热图)要求输入为宽格式数据。
- 简化汇总操作:便于计算跨时间点或类别的汇总统计量(如平均值、总和)。
- 匹配输出需求:报告或表格常要求宽格式以展示关键指标(如年度销售额、患者多时间点测量值)。
例如,在临床研究中,将患者多次随访的长数据转换为宽格式,可以直观对比同一患者不同时间点的指标变化,便于进行横向分析或生成交叉表。
使用 names_from 和 values_from 可以选定长数据中的名称-值 对,并将长数据转化为宽数据。
us_rent_income |> pivot_wider(names_from = variable, values_from = c(estimate, moe))