r - 旋转一列,同时将其余列保留在 R 中
问题描述
我对使用 R 进行编码非常陌生,我正在致力于清理和转换一些数据。
我已经研究了 reshape() 和 reshape2() 的一些不同用途,以便为 cast 函数提供帮助,但我未能成功。
基本上我想做的是,向上移动一列作为值的列标题。
这是我的数据:
#My data:
KEYFIGURE LOCID PRDID KEYFIGUREDATE KEYFIGUREVALUE
Sales 1001 A 2018-01-01 1
Promo 1001 A 2018-01-02 2
Disc 1001 A 2018-01-03 3
Sales 1001 B 2018-01-01 10
Promo 1001 B 2018-01-01 11
Disc 1002 B 2018-01-03 12
我想得到的结果:
LOCID PRDID KEYFIGUREDATE Sales Promo Disc
1001 A 2018-01-01 1 2
1001 A 2018-01-03 3
1001 B 2018-01-01 10 11
1002 B 2018-01-03 12
但是,我很难弄清楚这可能是如何以一种聪明的方式进行的。重塑包装。
解决方案
您可以在一行中执行此操作tidyr::spread
:
library(tidyr)
df %>%
spread(KEYFIGURE, KEYFIGUREVALUE)
LOCID PRDID KEYFIGUREDATE Disc Promo Sales
1 1001 A 2018-01-01 NA NA 1
2 1001 A 2018-01-02 NA 2 NA
3 1001 A 2018-01-03 3 NA NA
4 1001 B 2018-01-01 NA 11 10
5 1002 B 2018-01-03 12 NA NA
该函数的工作方式是在数据集中为其提供 2 个变量:第一个是分布在多个列中的变量,而第二个是设置要放入这些单元格的值的变量。
推荐阅读
- rust - 如何克隆 Vec
>? - django - Celery 任务中的访问请求方法
- python - 同时运行两个 python 脚本并通过键输入同时杀死它们
- android - 无法将活动背景颜色更改为默认值
- html - 从 DOM 中删除 CSS 样式表
- pdf - 有没有办法在 rmarkdown 中将文本环绕在图像周围,同时兼容 pdf 和 html?
- matplotlib - matplotlib - 用组栏绘制合并的数据框
- android - 平滑地为 BottomSheet 窥视高度设置动画
- azure - Azure 资源移动器失败,但资源已移动
- python - 如何在 pyproject.toml 文件中配置 os 特定的依赖项 [Maturin]