R 按日期计算值的数量

R 按日期计算值的数量,r,ggplot2,R,Ggplot2,我在下面有一个数据框,我的目标是创建一个趋势线图,它将按经销商显示每个日期的计数。我正在努力找到如何计算每天的数量,以便把y轴 Deal<-c("WEB","ASD","FGH","WEB","ASD","FGH","WEB","ASD","FGH") Date<-c("2020-01-03","2020-01-03","2020-01-04","2020-01-05","2020-01-05","2020-01-06","2020-01-07","2020-01-07","

我在下面有一个数据框,我的目标是创建一个趋势线图,它将按经销商显示每个日期的计数。我正在努力找到如何计算每天的数量,以便把y轴

Deal<-c("WEB","ASD","FGH","WEB","ASD","FGH","WEB","ASD","FGH")
    Date<-c("2020-01-03","2020-01-03","2020-01-04","2020-01-05","2020-01-05","2020-01-06","2020-01-07","2020-01-07","2020-01-07")
    DD<-data.frame(Deal,Date)

# Multiple line plot
library(ggplot2)
ggplot(DD, aes(x =Date , y = )) + 
  geom_line(aes(color = Deal), size = 1) +
  theme_minimal()
Deal像这样的东西

DD %>% 
  mutate(Date = as_date(Date)) %>% 
 group_by(Date) %>% 
  summarise(cnt = n_distinct(Deal)) %>% 
ggplot(., aes(x = Date , y = cnt)) + geom_line()+
  geom_smooth(method = "lm")+
  theme_minimal()

您可以使用
geom\u line
中的
stat\u count
来计算每天的数字。这将跳过计数为零的天数,因此您可能希望通过使用
dplyr::count
然后填充间隙,或者使用
geom_bar
而不是
geom_line
来明确这些天数

库(tidyverse)
DD%
变异(日期=as.Date(日期))
#多线图
ggplot(DD,aes(x=日期))+
几何线(stat=“count”,aes(颜色=交易),尺寸=1)+
主题_极小值()


由(v0.3.0)于2020-01-27创建,或者,您可以按经销商和日期分组,并直接按日期获取每个经销商的计数。这里我使用了
dplyr
包中的
count
(包含在
tidyverse
中)。我还添加了
.drop=FALSE
,以便对某些日期计数为0的经销商进行计数:

库(tidyverse)
图书馆(lubridate)
DD%>%分组依据(交易、日期、.drop=FALSE)%>%
计数()
#一个tibble:15x3
#分组:交易,日期[15]
交易日期
1 ASD 2020-01-03 1
2 ASD 2020-01-04 0
3 ASD 2020-01-05 1
4 ASD 2020-01-06 0
5 ASD 2020-01-07 1
6 FGH 2020-01-03 0
7 FGH 2020-01-04 1
8 FGH 2020-01-05 0
9 FGH 2020-01-06 1
10 FGH 2020-01-07 1
11 WEB 2020-01-03 1
12 WEB 2020-01-04 0
13 WEB 2020-01-05 1
14 WEB 2020-01-06 0
15 WEB 2020-01-07 1
然后,您可以通过执行以下操作将此计数传递到
ggplot2

库(tidyverse)
图书馆(lubridate)
DD%>%分组依据(交易、日期、.drop=FALSE)%>%
计数()%>%
ggplot(aes(x=ymd(日期),y=n,颜色=Deal,组=Deal))+
几何点()+
geom_线()

注意:在这里,我使用
ymd
from
lubridate
包中的函数将日期转换为绘图上的日期格式