问题描述
我正在尝试对gt
表中的row labels重新排序,但是由于某种原因,{{1}似乎忽略了我正在使用的forcats
函数}。这是一个可复制的示例,以说明我的意思:
(1)以下是仅使用变量gt
,gt
和group
的表的数据集(char
附带)的表形式:>
currency
结果表的照片
(2)假设我希望能够对行标签重新排序,以使library(gt)
library(tidyverse)
exibble %>%
select(group,char,currency) %>%
gt(groupname_col = 'group',rowname_col = 'char')
从每个组中的最大到最小的水果排序。它应该最终看起来像这样:
理想表的照片:
(3)因此,我重新调整了char
的水平,并期望表中的行标签以这种新顺序显示:
char
但是,好像exibble %>%
mutate(charOrdered = fct_relevel(char,c('durian','coconut','banana','apricot','honeydew','grapefruit','fig'))) %>%
select(group,charOrdered,rowname_col = 'charOrdered')
忽略了gt
函数并按字母顺序保留了新变量forcats
的顺序。知道为什么会发生这种情况以及如何重新排序行标签吗?
结果表的照片(与第一个表相同):
我在macOS Catalina 10.15.6上使用charOrdered
4.0.2,R
1.0.2,dplyr
0.5.0和forcats
0.2.2。
我是R和堆栈溢出的新手,因此欢迎您提供关于如何更好地表达问题的任何建设性反馈,我们将不胜感激。谢谢!
如果您想知道,我通过创建矢量在(2)中创建了理想表。但是,这种方法不理想,因为它效率低下并且容易出错。
gt