r - 如何可视化 R 中分类变量的频率
问题描述
我的数据框中有 2 个变量,我正在尝试使用 ggplot 来绘制图形。在 x 轴上,我想要具有每日频率的日期。在 y 轴上,我想要在给定日期显示的唯一名称的计数。
变量在数据框中看起来像这样。
Date Name
1 2016-03-01 Joe
2 2016-03-01 Joe
3 2016-03-01 Joe
4 2016-03-01 Mark
5 2016-03-01 Sue
6 2016-03-02 Mark
7 2016-03-02 Joe
8 2016-03-03 Joe
9 2016-03-03 Joe
10 2016-03-03 Bill
因此,第一天 y 轴上的频率将显示 3,第二天显示 2,第三天显示 2。
我的问题是如何生成该图表。
解决方案
Name
计算每个唯一的数量Date
,然后用geom_bar
/绘制geom_col
。
library(dplyr)
library(ggplot2)
df %>%
group_by(Date) %>%
summarise(n = n_distinct(Name)) %>%
ggplot() + geom_col(aes(Date, n))
#ggplot() + geom_bar(aes(Date, n), stat = "identity")
数据
df <- structure(list(Date = c("2016-03-01", "2016-03-01", "2016-03-01",
"2016-03-01", "2016-03-01", "2016-03-02", "2016-03-02", "2016-03-03",
"2016-03-03", "2016-03-03"), Name = c("Joe", "Joe", "Joe", "Mark",
"Sue", "Mark", "Joe", "Joe", "Joe", "Bill")), class = "data.frame",
row.names = c(NA, -10L))
推荐阅读
- corda - 机密身份映射到众所周知的身份
- amazon-web-services - 如何将 Google SSO 配置为仅接受具有特定域的电子邮件地址?
- dart - Flutter FutureBuilder 未更新
- c# - OrderBy 从数据表 C# 中选择的 DateTime 列(列名字符串)
- python - 气流意外向子进程发出 SIGTERM 信号
- r - parSapply 在数据集上(为数据集的每一行在多个核心上运行一个函数)
- java - 现有数据库表的 Hibernate-OneToMany 映射
- r - 根据其子集的均值和标准差更改向量的某些值
- ngrx - 已经定义的单一效果的 NGRX 整体效果
- javascript - 如果有一个选项,如何禁用选择下拉菜单?