r - 使用 dplyr 选择并绘制最高频率

标签 r select ggplot2 count dplyr

目标是选择/过滤数据框中频率(出现次数)最高的前 3(或 n)个事件,然后使用 ggplot2 中的条形图绘制这些事件。

例子:

library(dplyr)
df <- data.frame(
  type=c("car","bike","horse","boat","yacht","train"),freq=c(20,2,5,60,11,10))

到目前为止,我可以安排df:

df_order <- df %>% 
            arrange(desc(freq))
[1] df_order
type freq
1  boat   60
2   car   20
3 yacht   11
4 train   10
5 horse    5
6  bike    2 

期望的结果是仅选择前 3 个类型,然后使用条形图绘制它们。我认为 count 会很有用,但不确定该怎么做。有什么想法吗?

最佳答案

在我们根据“频率”列 (arrange(...)) 对数据集进行排序后,我们可以使用 slice 对前 3 个值进行排序,使用 ggplot,在aes中指定'x'和'y'变量,并用geom_bar

绘制条形图
 library(ggplot2)
 library(dplyr)
 df %>% 
    arrange(desc(freq)) %>%
    slice(1:3) %>%
    ggplot(., aes(x=type, y=freq))+
              geom_bar(stat='identity')

或者另一个选项是 top_n,这是一个方便的包装器,它使用 filtermin_rank 来选择前“n”(3) 个观察值在“频率”列中并使用 ggplot 如上所述。

top_n(df, n=3, freq) %>%
          ggplot(., aes(x=type, y=freq))+
              geom_bar(stat='identity')

enter image description here

关于r - 使用 dplyr 选择并绘制最高频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32141332/

相关文章:

javascript - 带有选项链接的自定义 HTML 选择

r - 使用表达式标签时组合填充和颜色图例

r - 在两个数据集的小平面包裹 ggplot 上查找多个峰值密度

c# - 将 R 与 RdotNet 连接时显示设置环境变量 'PATH'

R|ggplot2 : unordered stacked bar graph

r - 根据其他变量的值选择一列相乘

r - 如何通过 ggplot2-autoplot 放大时间序列数据

MYSQL 获取特定表字段计数

c - select() 如何返回 -1、0 或 1 以外的值?

推荐13种或以上类别的比例尺颜色