R 使用几何图形条表示平均值
我在看根据抵达前几天每天预订的酒店房间 我认为预订速度会因一周中的不同日期以及酒店A和酒店B而有所不同,所以我想按这些类别进行分类。但是,当I facet(7x2hotels=14 facets)时,它除以日期总数,而不是每个类别中的日期数。也就是说,我有1400家独特的日期酒店,所以所有的东西都被1400除以,而不是我计算的大约100。我希望我的代码除以97103101,这取决于我在每个方面有多少个酒店日期,这样我就可以代表一个“典型”的预订模式 以下是我当前的数据和代码:R 使用几何图形条表示平均值,r,ggplot2,facet,geom-bar,R,Ggplot2,Facet,Geom Bar,我在看根据抵达前几天每天预订的酒店房间 我认为预订速度会因一周中的不同日期以及酒店A和酒店B而有所不同,所以我想按这些类别进行分类。但是,当I facet(7x2hotels=14 facets)时,它除以日期总数,而不是每个类别中的日期数。也就是说,我有1400家独特的日期酒店,所以所有的东西都被1400除以,而不是我计算的大约100。我希望我的代码除以97103101,这取决于我在每个方面有多少个酒店日期,这样我就可以代表一个“典型”的预订模式 以下是我当前的数据和代码: DaysBefor
DaysBeforeArrival=rep(1:5,8)
Hotel=rep(LETTERS[1:2],20)
DayOfWeek=c(rep(1,10),rep(2,10),rep(1,10),rep(2,10))
Dates=c(rep("Jan-1",10),rep("Jan-2",10),rep("Jan-8",10),rep("Jan-9",10))
bookings=(sample(1:40))
Date_HotelID=paste(Hotel,Dates,sep="-")
mydf=data.frame(DaysBeforeArrival,Hotel,DayOfWeek,Dates,bookings,Date_HotelID)
ggplot(mydf,aes(DaysBeforeArrival,bookings/length(unique(Date_HotelID)))+
geom_bar(stat=identity) +
facet_grid(DayofWeek~HotelID)
谢谢 这就是你想要实现的吗
library(ggplot2)
ggplot(mydf,aes(DaysBeforeArrival,bookings/length(unique(Date_HotelID))))+
geom_bar(stat="identity") + facet_wrap(~Hotel~DayOfWeek)
一种方法是,在绘制图形之前,只需计算出要绘制的内容。在您的情况下,只需计算每个
DayOfWeek
/酒店的唯一的Date\u HotelID
,然后将每行的预订数除以该值即可
例如,我可以使用dplyr中的函数来实现这一点。注:我使用的是n_distinct
,这是length(unique(…)
的dplyr版本
用户只需使用计算出的数据绘制图形
ggplot(mydf3, aes(DaysBeforeArrival, book.speed)) +
geom_bar(stat="identity") +
facet_grid(DayOfWeek ~ Hotel)
您能为您的问题添加一个可复制的数据吗?这应该有效:daysbeforearrative=rep(1:5,8);酒店=代表(字母[1:2],20);DayOfWeek=c(代表(1,10),代表(2,10),代表(1,10),代表(2,10));日期=c(代表(10年1月1日)、代表(10年1月2日)、代表(10年1月8日)、代表(10年1月9日);预订量=(样本(1:40));Date_HotelID=粘贴(酒店,日期,sep=“-”;df=data.frame(Daysbeforearrative、Hotel、DayOfWeek、Dates、bookings、Date_HotelID)我需要显示一个典型的日期(例如,除以每个方面窗口中的Date_HotelID的数量,而不是除以Date_HotelID的总数)
ggplot(mydf3, aes(DaysBeforeArrival, book.speed)) +
geom_bar(stat="identity") +
facet_grid(DayOfWeek ~ Hotel)