我有这些:
colnames(w)
[1] "user_id" "install_date" "app_version" "user_session_id"
[5] "event_timestamp" "app_page" "time_seconds"
我想获得每个app_page会话的平均时间(总共3个)所以我这样做了。由于有3个应用程序版本,我想绘制所有这3个页面,每个版本使用平均应用程序时间。
这就是我所做的:
df=sqldf('select app_version,app,round(avg(time_seconds),0)
as time_app from w group by app_version')
df
给出了这个:
app_version app_page time_app
1 v1 build 1019
2 v2 learn 910
3 v3 learn 966
但它看起来并不正确。 如果我试试这个
df1=sqldf('select app_version,app,round(avg(time_seconds),0) as time_app from w group by app')
df1
app_version app_page time_app
1 v2 build 1001
2 v2 draw 727
3 v2 learn 982
我认为它是正确的,但它包含了所有版本,而不是每个版本都是独立的。
试图绘制它。
sw<-ggplot(data=df1, aes(x=app, y=time_app)) +
geom_bar(stat="identity") +facet_grid(app_version ~.)
sw
如何更改sql查询,以便提供正确的结果和 因此,情节会为每个版本提供每个应用页面的平均时间吗?
答案 0 :(得分:0)
plot将为每个版本提供每个应用页面的平均时间
这听起来像是两个方面的聚合:
select app, app_version, round(avg(time_seconds), 0) as time_app
from w
group by app, app_version
order by app, app_version;