使用 R 中的 fct_reorder 根据值重新排序因子

2024-01-04

My data:

structure(list(LoB = c("C", "C", "C", "A", 
"A", "B", "C", "A", "A", "C", 
"A", "B", "C", "B", "A", "C", "B", 
"A", "B", "C", "A", "B", "B", "A", 
"B", "C", "A", "B", "C", "B"), word = c("speed", 
"connection", "call", "bt", "reliable", "reliable", "reliable", 
"expensive", "cheaper", "uk", "customer", "customer", "customer", 
"network", "broadband", "broadband", "signal", "price", "price", 
"price", "poor", "poor", "ee", "service", "service", "service", 
"excellent", "excellent", "excellent", "coverage"), word_total = c(68L, 
46L, 44L, 3138L, 3479L, 906L, 71L, 6096L, 2967L, 39L, 10405L, 
1429L, 113L, 676L, 5193L, 73L, 868L, 8763L, 814L, 139L, 4708L, 
659L, 530L, 19185L, 2253L, 136L, 7180L, 1227L, 69L, 1453L), word_prop_by_total_feedbacks = c(0.0656370656370656, 
0.0444015444015444, 0.0424710424710425, 0.0343378635677237, 0.0380692885124636, 
0.101603678367164, 0.0685328185328185, 0.0667060600091918, 0.0324666797977808, 
0.0376447876447876, 0.113857702492723, 0.160255691376023, 0.109073359073359, 
0.075810250084109, 0.0568248965924759, 0.0704633204633205, 0.0973421554334417, 
0.0958899612632132, 0.0912863070539419, 0.134169884169884, 0.0515177379467314, 
0.0739037792979702, 0.0594370303913872, 0.209933687873416, 0.252663451833576, 
0.131274131274131, 0.0785678331473092, 0.137602332623079, 0.0666023166023166, 
0.16294717954469)), class = c("grouped_df", "tbl_df", "tbl", 
"data.frame"), row.names = c(NA, -30L), vars = "LoB", drop = TRUE, indices = list(
    c(3L, 4L, 7L, 8L, 10L, 14L, 17L, 20L, 23L, 26L), c(5L, 11L, 
    13L, 16L, 18L, 21L, 22L, 24L, 27L, 29L), c(0L, 1L, 2L, 6L, 
    9L, 12L, 15L, 19L, 25L, 28L)), group_sizes = c(10L, 10L, 
10L), biggest_group_size = 10L, labels = structure(list(LoB = c("A", 
"B", "C")), class = "data.frame", row.names = c(NA, -3L
), vars = "LoB", drop = TRUE, .Names = "LoB"), .Names = c("LoB", 
"word", "word_total", "word_prop_by_total_feedbacks"))

我正在尝试使用ggplot2 but fct_reorder and drlib::reorder_within(word, word_total, LoB)不工作并给我一个警告消息:Unequal factor levels: coercing to characterbinding character and factor vector, coercing into character vectorbinding character and factor vector, coercing into character vectorbinding character and factor vector, coercing into character vector

这是代码:

   mutate(word = drlib::reorder_within(word, word_total, LoB)) %>% 

OR

  mutate(word = forcats::fct_reorder(word, word_total)) %>%
  ggplot(aes(word, word_prop_by_total_feedbacks, fill = LoB)) +
  geom_col() +
#  drlib::scale_x_reordered()+
  facet_wrap(~ LoB, scales = "free") +
  coord_flip()

它不是按降序绘制的。我缺少什么?

Update:失踪ungroup() before mutate()。谢谢大家


与@austensen类似,但使用不同的方法factor厌恶。

你可以只group_by and arrange相应地,那么ungroup并创建并索引。这样你就不用担心使用的问题了factor,但你必须创建breaks and labels in scale_x_continuous.

library(ggplot2)
library(dplyr)

plot_data <- df %>% 
  group_by(LoB) %>% 
  arrange(word_total) %>% 
  ungroup() %>% 
  mutate(order = row_number())

ggplot(plot_data, aes(order, word_prop_by_total_feedbacks, fill = LoB)) +
  geom_col() +
  facet_wrap(~ LoB, scales = "free") +
  scale_x_continuous(breaks = plot_data$order, labels = plot_data$word) +
  coord_flip()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 R 中的 fct_reorder 根据值重新排序因子 的相关文章

  • R 中的龙卷风图

    我正在尝试在 R 中绘制龙卷风图 又名敏感性图 目标是可视化某些变量增加 10 和减少 10 的效果 到目前为止我已经得到这个结果 这是我正在使用的代码 Tornado plot data lt matrix c 0 02 0 02 0 0
  • 如何绘制每条线之间具有特定距离的图形

    实际上 我尝试绘制一个图形 但它将所有列 线 放在一起并显示 因此它不具有代表性 我尝试制作模拟数据并向您展示我如何绘制它 并向您展示我想要的内容 我不知道如何制作像下面所示的示例的数据 但我在这里做了什么 set seed 1 M lt
  • 如何从 R 数据框中提取关键字

    我是 R 中文本挖掘的新手 我想从数据框的列中删除停用词 即提取关键字 并将这些关键字放入新列中 我尝试制作一个语料库 但它对我没有帮助 df C3是我目前拥有的 我想添加栏目df C4 但我无法让它工作 df lt structure l
  • 使用 pkg:sjPlot 函数创建一个生成部分斜体单元格的数据框

    我正在尝试创建一个简单的数据表 其中 Coral taxon 列中的属名称为斜体 而 spp 列中的属名称为斜体 属名后面的部分不大写 我尝试使用 expression 函数对 Coral taxon 的每一行进行编码 但没有成功 sum
  • R 编程常用工具

    如果已经以不同的方式问过这个问题 我深表歉意 但我找不到任何达到我想要的东西 我真的是从其他软件包 SPSS 开始接触 R 的 当我了解真正可以做什么时 我意识到我还需要其他 工具 这让我想到了我的问题 您有哪些用于开发 R 代码的设置 我
  • 更快的 %in% 运算符

    The 快速匹配 https cran r project org web packages fastmatch index html包实现了更快的版本match对于重复匹配 例如在循环中 set seed 1 library fastma
  • 读取R中打开的Excel文件

    有没有办法将打开的Excel文件读入R 当Excel中打开一个excel文件时 Excel会对文件加锁 比如R中的read方法无法访问该文件 你能绕过这个锁吗 Thanks 编辑 这发生在带有原始 Excel 的 Windows 下 发生错
  • 计算互相关函数?

    In R 我在用ccf or acf计算成对互相关函数 以便我可以找出哪个移位给我带来最大值 从它的外观来看 R给我一个标准化的值序列 Python 的 scipy 中是否有类似的东西 或者我应该使用fft模块 目前 我正在这样做 xcor
  • 用表达式分割轴标签

    我有一个带有包含表达式的长标签的图 我想将其分成两行 在表达式中添加 n 结果不符合预期 ylabel lt expression A very long label with text and n expression alpha bet
  • 使用大矩阵操作

    我必须使用 big matrix 对象 并且无法计算某些函数 让我们考虑以下大矩阵 create big matrix object x lt as big matrix matrix sample 1 10 20 replace TRUE
  • 对 data.table 中的列表列执行操作

    假设我有一个data table 例如dt lt data table foo list 1 3 4 6 bar c 2 7 如何使用 dt 框架对 foo 向量列表执行操作 操作可能是将 bar 添加到 foo 返回列表 3 5 11 1
  • dplyr 返回每个组的全局平均值,而不是每个组的平均值

    有人可以解释一下我在这里做错了什么 library dplyr temp lt data frame a c 1 2 3 1 2 3 1 2 3 b c 1 2 3 1 2 3 1 2 3 temp gt group by temp 1 g
  • randomForest 包在删除一个预测类时的奇怪行为

    我正在运行一个随机森林模型 它产生的结果从统计角度来看对我来说完全没有意义 因此我确信有些东西mustrandomForest 包的代码出现错误 至少在模型的本次迭代中 预测 左侧变量是具有 3 种可能结果的政党 ID 民主党 独立党 共和
  • 如何在 Caret 中绘制随机森林(护林员)树

    我生成了如下所示的随机森林树 并尝试绘制它 但出现错误 我在哪里犯了错误 我怎样才能以正确的方式绘制它 Actmodel lt train Activity Section Author data CB1 method ranger trC
  • 如何对数字进行四舍五入并使其显示零?

    R 中将数字四舍五入到小数点后 2 位的常用代码是 gt a 14 1234 gt round a digits 2 gt a gt 14 12 但是 如果该数字的前两位小数位为零 则 R 会在显示中抑制零 gt a 14 0034 gt
  • 为什么数据帧上的 is.vector 不返回 TRUE?

    tl dr R 中的向量到底是什么 长版 R 中很多东西都是向量 例如 数字是长度为 1 的数值向量 is vector 1 1 TRUE 列表也是一个向量 is vector list 1 1 TRUE 好的 所以列表是一个向量 显然 数
  • purrr::可能函数可能无法与map2_chr函数一起使用

    我怀疑这是 purrr 包中的错误 但想先在 StackOverflow 中检查我的逻辑 在我看来 possibly功能在内部不起作用map2 chr功能 我正在使用 purrr 版本 0 2 5 考虑这个例子 library dplyr
  • 如何在 data.table 中分组后使用条件计算行数

    我有以下数据框 dat lt read csv s1 s2 v1 v2 a b 10 20 a b 22 NA a b 13 33 c d 3 NA c d 4 5 NA c d 10 20 dat gt A tibble 6 x 4 gt
  • 在R中循环子文件夹

    我正在 R 环境中包含多个子文件夹的文件夹中工作 我想要循环遍历多个子文件夹 然后在每个子文件夹中调用 R 脚本来执行 我想出了下面的代码 但我的代码似乎添加了 到子文件夹列表 我收到错误 文件中的错误 文件名 r 编码 编码 无效的 描述
  • 实现 XGboost 自定义目标函数

    我正在尝试使用 XGboost 实现自定义目标函数 在 R 中 但我也使用 python 所以有关 python 的任何反馈也很好 我创建了一个返回梯度和粗麻布的函数 它工作正常 但是当我尝试运行 xgb train 时它不起作用 然后 我

随机推荐