我有一组按日期列出的分类变量。期望的结果是由特定日期范围选择的分类变量的计数的图。
我可以产生一个情节的整个集,但没有变化,我发现产生的结果。Date的格式为date,libloc为字符。最终的结果是我们在不同地点按学期做的指令数量的图。
以下是我目前所掌握的:
library(ggplot)
library(lubridate)
library(readr)
#df <- read_excel("C:/Users/12083/Desktop/instructions/datasetd.xlsx")
df <- structure(list(Location = c("8", "Boise", "Idaho Falls","Meridian",
"Other", "Pocatello", "REND", "Salt Lake City",
"Sun Valley", "Twin Falls", NA),
counts = c(1L, 12L, 780L, 61L, 18L, 3446L,
2L, 1L, 1L, 4L, 24L)),
row.names = c(NA, -11L), class = c("tbl_df","tbl","data.frame"))
df %>%
select(date,Location) %>%
filter(date >= as.Date("2017-01-05") & date <= as.Date("2018-01-10"))%>%
group_by(Location) %>%
summarise(count=n())
g <- ggplot(df, aes(Location))
g + geom_bar()
3条答案
按热度按时间woobm2wo1#
您可能会发现我的
santoku
包有帮助。它可以将日期分割成时间间隔:显然,你会想选择你的学期日期适当。
然后你可以打印类似这样的东西:
fxnxkyjh2#
希望这对你有帮助:
输出:
你也许可以让它更优雅。。但我觉得效果不错
编辑成线图
此编辑遵循您在评论中的请求:
输出:
bd1hkmkf3#
这是一个新的答案,因为方法不同
输出:绘图:
干净。plot:
编辑:增加了一个表函数!
阅读了你的评论后,我想我明白你想做什么了。您要求:
“在垂直方向上显示讲师的位置计数,在水平方向上显示日期计数。”
问题是,原始数据实际上并没有给予你计数的数量-即“有多少次一个特定的位置出现在一个特定的日期”。因此,我必须使用table函数添加另一行来计算:
这会计算每个日期+位置组合出现的次数,并给予一个称为“频率”的值。
现在,您可以将此频率绘制为计数,如下所示:
我有一种感觉,这并不完全是你想要的,因为数字是相当低的(1-12计数之间的范围),但这是我所理解的。
输出: