2017-11-16 4 views
0

私は約1Mnのユーザーレコードを持つデータセットを持っており、その日の訪問はAppです。 2つの列があり、1つはユーザーIDで、もう1つはユーザーがアプリで訪問した日付です。各行は、UserとDateの固有の組み合わせです。今では、1日目にAppに来たすべてのユーザー、2,3,4などに来たすべてのユーザーのために、1か月でAppをどのように訪問したのかを知りたい。ユーザーとその訪問日をプロットする

これらのユーザーがDay1からプラットフォーム上でどのように訪問したかを示すグラフを描くことは可能ですか?

データはこのようになります。

x=sprintf("M_%03d", 1:25) 
y=seq(as.Date('2011-01-01'),as.Date('2011-01-31'),by = 1) 
dat = expand.grid(x = x, y = y) 
dat2 = data.frame(ID = sample(dat$x , nrow(dat)) , Score = sample( 
dat$y , nrow(dat))) 

ご協力いただければ幸いです。

+0

私はあなたが[これらのリンク](https://www.google.com/search?q=site%3Astackoverflow.com+r+cohort)をチェックアウトをお勧め、いくつかのことを試してみます意味のある再現可能な例(何人かのユーザーにとって1ヶ月以上のデータ?)に戻ってください。 – lukeA

答えて

0

特定のユーザーがサービスを使用し始めた週(または日)を示す因子タグを作成することで、これに近づけることを検討します。

require(dplyr) 

dat3 <- dat2 %>% group_by(ID) %>% mutate(JoinDate = min(Score)) 

が最も早い日付計算します:

まず、彼らが参加した日付と、各ユーザーIDタグ付け

dat3 <- dat3 %>% ungroup() %>% mutate(DaysSince = difftime(JoinDate, start_Date, units="days")) 

start_Date <- min(dat3$Score)) 

タグをユーザーが最初に訪問した日と、各行

プロット用の係数に変換して、カテゴリタグとして使用できます。

dat3$DaysSince <- as.factor(dat3$DaysSince) 

ggplotを使用したグラフ。 geom_jitter()を使用して、ユーザーが1日に複数回訪問したポイントが重複しないようにします。

これを視覚化する方法はたくさんありますが、ここでは1つの方法を示します。ヒートマップを試すこともできます。

require(ggplot2) 

ggplot(dat3, aes(DaysSince,Score, color=DaysSince)) +geom_point()+geom_jitter()+coord_flip() 

enter image description here

+0

本当にありがとうございます。これは素晴らしい。 – Ashish

関連する問題