【发布时间】:2020-04-27 18:17:01
【问题描述】:
我有一个数据框如下:
> df <- data.frame(BRANCH = c('AMB','GBM','CBE','GGN','KKE','KLM'),
+ OCT_REV = rnorm(6,50,5),
+ NOV_REV = rnorm(6,60,4),
+ DEC_REV = rnorm(6,55,10))
> df
BRANCH OCT_REV NOV_REV DEC_REV
1 AMB 57.76785 63.13167 39.21492
2 GBM 54.55668 64.89956 64.03446
3 CBE 50.61963 57.14174 54.64337
4 GGN 46.37132 65.48663 51.47701
5 KKE 49.24153 56.42736 46.68634
6 KLM 41.56488 63.67613 41.90277
>
我的实际 DF 有多个列和 16 个分支。但在最终报告中,分支机构是根据其位置标准进行排序的。例如,我需要根据向量对整个数据帧进行重新排序
Branches = c('AMB','GBM','GGN','CBE','KLM','KKE')
预期输出
Branch OCT_REV NOV_REV DEC_REV
AMB 57.76785 63.13167 39.2149
GBM 54.55668 64.89956 64.03446
GGN 46.37132 65.48663 51.47701
CBE 50.61963 57.14174 54.64337
KLM 41.56488 63.67613 41.90277
KKE 49.24153 56.42736 46.68634
对于单个向量,我可以在 R 中使用“匹配”函数,但如何根据另一个向量重新排序整个数据帧。
【问题讨论】:
-
重新排序整个数据框是什么意思?
match在这里不够吗?df[match(df$BRANCH, Branches), ]? -
df$BRANCH <- forcats::fct_relevel(df$BRANCH, Branches); dplyr::arrange(df, BRANCH)
标签: r