如何通过底数R中的数据框中的数字变量的中位数对框图中的框进行排序

克里斯·鲁勒曼

我有一个带有三个变量的数据框;一个(“组”)是一个具有两个级别的因子,一个(“单词”)是一个字符向量,一个(“持续时间”)是数字。例如:

DATA <- data.frame(
  group = c(rep("prefinal",10), rep("final", 10)),
  word  = c(sample(LETTERS[1:5], 10, replace = T), sample(LETTERS[1:5], 10, replace = T)),
  duration   = rnorm(20)
)
DATA
      group word    duration
1  prefinal    C  0.16378771
2  prefinal    E  0.13370196
3  prefinal    A  0.69112398
4  prefinal    B  0.21499187
5  prefinal    D -0.28998279
6  prefinal    D -2.00353522
7  prefinal    A  0.37842555
8  prefinal    E  1.62326170
9  prefinal    A -0.26294929
10 prefinal    B -0.54276322
11    final    D  1.32772171
12    final    E -1.84902285
13    final    C  0.01058158
14    final    E  1.49529743
15    final    B  0.55291290
16    final    A -0.35484820
17    final    D -0.16822110
18    final    A  0.88667458
19    final    E  0.70889916
20    final    B  1.12217332

我想在方框图中按组描述单词的持续时间:

boxplot(DATA$duration ~ DATA$group + DATA$word, 
        xaxt="n",
        col = rep(c("blue", "red"), 5))
axis(1, at = seq(from=1.5, to= 10.5, by=2), labels = sort(unique(DATA$word)), cex.axis = 0.9)

默认情况下,R似乎按字母顺序(“单词”变量的顺序)对框进行排序。

编辑:

但是,我希望这些框按“ word”变量中“ prefinal”组中项目的持续时间的中位数(降序排列)进行排序。如何实现?在此处输入图片说明

Humpelstielzchen

您可以DATA$word根据其中位数重新排列其水平-之前DATA$duration是把它降序排列。

DATA$word <-  reorder(DATA$word, -DATA$duration, FUN = median)

boxplot(DATA$duration ~ DATA$group + DATA$word, 
        xaxt="n",
        col = rep(c("blue", "red"), 5))
axis(1, at = seq(from=1.5, to= 10.5, by=2), labels = levels(DATA$word), cex.axis = 0.9)

在此处输入图片说明

您可以对的子组执行相同的操作prefinal但这需要额外的步骤:

ordered_levels <- levels(with(DATA[DATA$group == "prefinal",], reorder(word, -duration, FUN = median)))

DATA$word <- factor(DATA$word, levels = ordered_levels)

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过R中的三个变量对数据框进行排序和计数?

计算R中数据框中行和列的中位数

中位数在数据框中

通过临时变量对Pandas数据框中的值进行排序

如何按所有列的中位数对数据框列进行排序

如何通过列表中的值对数据框进行排序

按中位数排序格子bwplot中的框的最佳方法

如何计算此数据框中不同种类的中位数,其中位数按种类标记并删除重复项

使用 R,如何使用现有数据框中列的中位数创建新数据集?

如何按R中的列名对数据框进行排序?

用 R 中的列中位数填充数据框列中的缺失值

将数据框中的组除以单独组的中位数

计算数据框中多列的中位数

R:在数据框中添加一行,每列的中位数

如何有效地用数据框中的中位数替换范围

如何为数据框中的多列计算单个中位数?

R:如何根据数字向量对数据框进行排序?

如何使用基数R函数对多个变量进行数据框排序,这些变量的名称在矢量中给出?

R中的中位数需要数字数据

在pandas groupby中通过两个变量对数据框进行排序

在熊猫数据框中,如何计算每月内每个十分位数的中位数

熊猫数据框的中位数

对数据框中的分类变量进行排序

根据数据框中的变量组对行进行排序

R:按字母数字列对数据框中的所有列进行排序

如何使用R在单个图中绘制数据框中变量与所有其他变量的散点图?

在R中的列表中对数据框进行排序

如何绘制已经在R中按行排序的数据的中位数和四分位数范围?

如何按r中数据框中的行对数字数据进行排名?