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