r - 我正在尝试绘制比例而不是我在 R 中的 ggplot2 中的比例,但我不确定如何去做
问题描述
因此,我希望看到在给定年份的给定月份存款的留到下一年的学生比例。这意味着我希望将 Retention_Status 的值为“1”的学生总数(在 Count 中找到)除以给定日期的 Count 总数(参见下面的 dput)。这是我用来在 ggplot 中创建代码的代码,但我不确定如何编辑它来做我想做的事。
Admit <- Admit %>%
group_by(year, month, week, Retention_Status) %>%
summarize(count = n())
ggplot(Admit, aes(1, week, fill = count)) +
geom_tile(colour = "white") +
facet_grid(year~month) +
scale_fill_gradient(low="red", high="green")
承认数据框如下。这似乎有一个简单的答案/修复,但我不确定它是什么。
structure(list(year = c("2012", "2012", "2012", "2012", "2012",
"2013", "2013", "2013", "2013", "2013", "2013", "2013", "2013",
"2013", "2013", "2013", "2013", "2013", "2013", "2013", "2013",
"2013", "2013", "2013", "2013", "2013", "2013", "2013", "2013",
"2013", "2013", "2013", "2013", "2013", "2013", "2013", "2013",
"2013", "2013", "2013", "2013", "2013", "2013", "2013", "2013",
"2013", "2013", "2013", "2013", "2013", "2013", "2014", "2014",
"2014", "2014", "2014", "2014", "2014", "2014", "2014", "2014",
"2014", "2014", "2014", "2014", "2014", "2014", "2014", "2014",
"2014", "2014", "2014", "2014", "2014", "2014", "2014", "2014",
"2014", "2014", "2014", "2014", "2014", "2014", "2014", "2014",
"2014", "2014", "2014", "2014", "2014", "2014", "2014", "2014",
"2014", "2014", "2014", "2014", "2014", "2014", "2014", "2014",
"2015", "2015", "2015", "2015", "2015", "2015", "2015", "2015",
"2015", "2015", "2015", "2015", "2015", "2015", "2015", "2015",
"2015", "2015", "2015", "2015", "2015", "2015", "2015", "2015",
"2015", "2015", "2015", "2015", "2015", "2015", "2015", "2015",
"2015", "2015", "2015", "2015", "2015", "2015", "2015", "2015",
"2015", "2015", "2015", "2015", "2015", "2015", "2015", "2015",
"2015", "2015", "2016", "2016", "2016", "2016", "2016", "2016",
"2016", "2016", "2016", "2016", "2016", "2016", "2016", "2016",
"2016", "2016", "2016", "2016", "2016", "2016", "2016", "2016",
"2016", "2016", "2016", "2016", "2016", "2016", "2016", "2016",
"2016", "2016", "2016", "2016", "2016", "2016", "2016", "2016",
"2016", "2016", "2016", "2016", "2016", "2016", "2016", "2016",
"2016", "2016"), month = structure(c(4L, 5L, 11L, 12L, 12L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L,
5L, 5L, 5L, 6L, 7L, 7L, 8L, 11L, 12L, 12L, 12L, 12L, 12L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 6L, 10L, 11L, 11L, 11L, 11L, 11L, 12L,
12L, 12L, 12L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 6L,
8L, 11L, 12L, 12L, 12L, 12L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 6L, 6L, 6L, 6L, 7L, 8L), .Label = c("January", "February",
"March", "April", "May", "June", "July", "August", "September",
"October", "November", "December"), class = "factor"), week = c(5,
1, 4, 2, 2, 1, 2, 2, 3, 4, 5, 1, 1, 2, 3, 4, 4, 5, 1, 1, 2, 2,
3, 4, 4, 5, 5, 1, 2, 2, 3, 3, 4, 4, 5, 5, 1, 1, 2, 3, 5, 2, 2,
3, 4, 3, 1, 2, 2, 3, 3, 1, 1, 2, 2, 3, 4, 4, 5, 1, 2, 3, 4, 4,
1, 1, 2, 3, 3, 4, 4, 5, 5, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 1, 1,
2, 2, 3, 4, 4, 4, 5, 2, 3, 3, 4, 4, 1, 2, 3, 4, 1, 2, 3, 4, 5,
1, 1, 2, 2, 3, 3, 4, 4, 5, 1, 1, 2, 2, 3, 4, 4, 5, 5, 1, 1, 2,
2, 3, 3, 4, 4, 5, 5, 1, 1, 2, 2, 3, 3, 4, 5, 5, 1, 3, 4, 5, 1,
2, 3, 4, 1, 1, 2, 3, 4, 5, 1, 1, 2, 2, 3, 3, 4, 4, 5, 1, 1, 2,
2, 3, 3, 4, 4, 5, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 1, 1, 2, 2, 3,
3, 4, 4, 1, 3, 3, 4, 4, 1), Retention_Status = c(1, 1, 1, 0,
1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1,
0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1,
0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1,
0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0,
1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1,
0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1,
0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
1, 0, 1, 1, 1, 1), count = c(1L, 1L, 1L, 1L, 3L, 1L, 2L, 3L,
2L, 1L, 2L, 1L, 3L, 3L, 3L, 1L, 4L, 1L, 1L, 3L, 4L, 4L, 6L, 1L,
6L, 1L, 3L, 6L, 2L, 7L, 1L, 7L, 5L, 7L, 2L, 3L, 1L, 4L, 2L, 2L,
2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 4L, 1L, 2L, 2L, 2L, 3L,
2L, 3L, 3L, 4L, 3L, 5L, 1L, 5L, 1L, 2L, 3L, 1L, 5L, 1L, 5L, 1L,
2L, 3L, 6L, 4L, 7L, 4L, 7L, 4L, 7L, 3L, 3L, 2L, 4L, 2L, 5L, 4L,
1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 3L, 2L,
3L, 2L, 2L, 3L, 1L, 5L, 2L, 2L, 1L, 4L, 1L, 1L, 5L, 1L, 4L, 4L,
1L, 3L, 1L, 3L, 3L, 5L, 2L, 7L, 4L, 7L, 7L, 7L, 3L, 3L, 1L, 3L,
1L, 3L, 2L, 3L, 3L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 4L, 4L, 1L, 1L,
1L, 2L, 3L, 1L, 1L, 1L, 4L, 1L, 1L, 1L, 5L, 1L, 2L, 2L, 1L, 4L,
1L, 4L, 1L, 4L, 1L, 4L, 4L, 2L, 6L, 5L, 7L, 6L, 7L, 3L, 7L, 2L,
3L, 2L, 5L, 2L, 3L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L)), row.names = c(NA,
-199L), class = c("grouped_df", "tbl_df", "tbl", "data.frame"
), vars = c("year", "month", "week"), drop = TRUE, indices = list(
0L, 1L, 2L, 3:4, 5L, 6:7, 8L, 9L, 10L, 11:12, 13L, 14L, 15:16,
17L, 18:19, 20:21, 22L, 23:24, 25:26, 27L, 28:29, 30:31,
32:33, 34:35, 36:37, 38L, 39L, 40L, 41L, 42L, 43L, 44L, 45L,
46L, 47:48, 49:50, 51:52, 53:54, 55L, 56:57, 58L, 59L, 60L,
61L, 62:63, 64:65, 66L, 67:68, 69:70, 71:72, 73:74, 75:76,
77:78, 79:80, 81:82, 83:84, 85:86, 87L, 88:89, 90L, 91L,
92L, 93:94, 95:96, 97L, 98L, 99L, 100L, 101L, 102L, 103L,
104L, 105L, 106:107, 108:109, 110:111, 112:113, 114L, 115:116,
117:118, 119L, 120:121, 122:123, 124:125, 126:127, 128:129,
130:131, 132:133, 134:135, 136:137, 138:139, 140L, 141:142,
143L, 144L, 145L, 146L, 147L, 148L, 149L, 150L, 151:152,
153L, 154L, 155L, 156L, 157:158, 159:160, 161:162, 163:164,
165L, 166:167, 168:169, 170:171, 172:173, 174L, 175:176,
177:178, 179:180, 181:182, 183:184, 185:186, 187:188, 189:190,
191:192, 193L, 194:195, 196L, 197L, 198L), group_sizes = c(1L,
1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 1L,
2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L,
2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L,
1L), biggest_group_size = 2L, labels = structure(list(year = c("2012",
"2012", "2012", "2012", "2013", "2013", "2013", "2013", "2013",
"2013", "2013", "2013", "2013", "2013", "2013", "2013", "2013",
"2013", "2013", "2013", "2013", "2013", "2013", "2013", "2013",
"2013", "2013", "2013", "2013", "2013", "2013", "2013", "2013",
"2013", "2013", "2013", "2014", "2014", "2014", "2014", "2014",
"2014", "2014", "2014", "2014", "2014", "2014", "2014", "2014",
"2014", "2014", "2014", "2014", "2014", "2014", "2014", "2014",
"2014", "2014", "2014", "2014", "2014", "2014", "2014", "2014",
"2014", "2014", "2014", "2015", "2015", "2015", "2015", "2015",
"2015", "2015", "2015", "2015", "2015", "2015", "2015", "2015",
"2015", "2015", "2015", "2015", "2015", "2015", "2015", "2015",
"2015", "2015", "2015", "2015", "2015", "2015", "2015", "2015",
"2015", "2015", "2015", "2015", "2016", "2016", "2016", "2016",
"2016", "2016", "2016", "2016", "2016", "2016", "2016", "2016",
"2016", "2016", "2016", "2016", "2016", "2016", "2016", "2016",
"2016", "2016", "2016", "2016", "2016", "2016", "2016", "2016",
"2016"), month = structure(c(4L, 5L, 11L, 12L, 1L, 1L, 1L, 1L,
1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L,
5L, 5L, 5L, 5L, 6L, 7L, 7L, 8L, 11L, 12L, 12L, 12L, 1L, 1L, 1L,
1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L,
5L, 5L, 5L, 5L, 6L, 10L, 11L, 11L, 11L, 12L, 12L, 12L, 12L, 1L,
1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 4L, 4L,
4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 6L, 6L, 8L, 11L, 12L, 12L, 12L,
12L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L,
3L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 7L, 8L), .Label = c("January",
"February", "March", "April", "May", "June", "July", "August",
"September", "October", "November", "December"), class = "factor"),
week = c(5, 1, 4, 2, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2,
3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 5, 2, 2, 3, 4, 3, 1, 2,
3, 1, 2, 3, 4, 5, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 2, 3, 4,
5, 1, 2, 3, 4, 4, 5, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 5,
1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4,
5, 1, 3, 4, 5, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5,
1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 1, 3, 4, 4, 1)), row.names = c(NA,
-130L), class = "data.frame", vars = c("year", "month", "week"
), drop = TRUE))
解决方案
这是你的想法吗?
library(dplyr)
library(tidyr)
Admit %>%
spread(key = Retention_Status, value = count, fill = 0) %>%
mutate(total = `0` + `1`, proportion = `1`/total)
# # A tibble: 130 x 7
# # Groups: year, month, week [130]
# year month week `0` `1` total proportion
# <chr> <fct> <dbl> <dbl> <dbl> <dbl> <dbl>
# 1 2012 April 5. 0. 1. 1. 1.00
# 2 2012 May 1. 0. 1. 1. 1.00
# 3 2012 November 4. 0. 1. 1. 1.00
# 4 2012 December 2. 1. 3. 4. 0.750
# 5 2013 January 1. 0. 1. 1. 1.00
# 6 2013 January 2. 2. 3. 5. 0.600
# 7 2013 January 3. 0. 2. 2. 1.00
# 8 2013 January 4. 0. 1. 1. 1.00
# 9 2013 January 5. 0. 2. 2. 1.00
# 10 2013 February 1. 1. 3. 4. 0.750
推荐阅读
- macos - SwiftUI 对悬停事件不是很敏感
- javascript - 在shopify主题的产品页面上传图片字段
- batch-file - 如何使用正则表达式在 .txt 文件中查找字符串?
- python - 在 Jupyter 笔记本中调整图像的显示大小
- osgi - 在 Apache Felix 运行时设置 SSL 密钥库
- swift - 如何在 Catalyst 应用程序中将搜索栏放入 NSToolbar?
- ruby - 如何在 Ruby 中的标题元素之间进行选择
- sparql - SPARQL 语法更正
- sharepoint - MS Flow SharePoint“授予访问权限”操作因“项目不存在”而失败
- laravel - 向 Laravel 中的所有用户发送每周电子邮件的方法