Select 并使用 dplyr 绘制最高频率
Select and plot top frequencies with dplyr
objective 是 select/filter 在数据框中具有最大频率(出现)的前 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
期望的结果是 select 只有前 3 个 types
然后使用条形图绘制它们。我认为 count
会有用,但不确定该怎么做。有什么想法吗?
在我们根据 'freq' 列 (arrange(...)
) 对数据集进行排序后,我们可以使用 slice
的前 3 个值,使用 ggplot
,指定 'x' 和 'y' 变量在 aes
中,并用 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
,它是一个方便的包装器,它使用 filter
和 min_rank
到 select 顶部 'n' (3) 中的观察'freq' 列并使用 ggplot
如上所述。
top_n(df, n=3, freq) %>%
ggplot(., aes(x=type, y=freq))+
geom_bar(stat='identity')
objective 是 select/filter 在数据框中具有最大频率(出现)的前 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
期望的结果是 select 只有前 3 个 types
然后使用条形图绘制它们。我认为 count
会有用,但不确定该怎么做。有什么想法吗?
在我们根据 'freq' 列 (arrange(...)
) 对数据集进行排序后,我们可以使用 slice
的前 3 个值,使用 ggplot
,指定 'x' 和 'y' 变量在 aes
中,并用 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
,它是一个方便的包装器,它使用 filter
和 min_rank
到 select 顶部 'n' (3) 中的观察'freq' 列并使用 ggplot
如上所述。
top_n(df, n=3, freq) %>%
ggplot(., aes(x=type, y=freq))+
geom_bar(stat='identity')