Challenge #62: Find the Duplicate Clicks ~連続したクリックの抽出~ – Alteryx Weekly Challenge
こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。
当エントリは『Alteryx Weekly Challenge:Intermediate Level Advent Calendar 2018』の18日目です。
- Alteryx Weekly Challenge:Intermediate Level Advent Calendar 2018 - Qiita
- Alteryx Weekly Challenge:Intermediate Level Advent Calendar 2018 | シリーズ | Developers.IO
『Alteryx Weekly Challenge:Intermediate Level Advent Calendar 2018』では、Alteryx Communityで公開されているWeekly ChallengeのIntermediate Levelにひたすら1人で挑戦していきます。
今回は連続したクリックの抽出に挑戦します。
動作環境
当エントリの執筆には、以下の環境を利用しています。
- Windows 10 Pro
- Alteryx Designer 2018.4.4.54346 英語版
Challenge #62: Find the Duplicate Clicks
お題
今回挑戦するお題はこちら。
「Input」側のデータはこちら。
「Output」側のデータはこちら。同じユーザー(IDFA)とデバイスで、前回のクリックから30秒以内にクリックがあった場合に連続したクリックとして判断し、「DuplicateClick」列に印を入れています。
解答の詳細
今回作成するワーフクローは以下の通りです。
日付の表記形式の変換
DateTimeツール(Parse -> DateTime)を使用して、「EventFireDate」列をDateTime型に変換します。Select the format that matches the incoming string field には MM/dd/yyyy hh:mm:ss
を選択しています。
秒差の出力
Multi-Row Formulaツール(Preparation -> Multi-Row Formula)を使用して、新しく「Diff」列をInt32型で作成し、時間差を秒単位で出力します。同じデバイスとユーザーで秒差を出力するため、「DeviceID」「IDFA」列でグループ化しています。
式は以下の通り設定しています。
DateTimeDiff([DateTime_Out], [Row-1:DateTime_Out], "seconds")
30秒以内のクリックの判定
Formulaツール(Preparation -> Formula)で、「DuplicateClick」列をInt32型で作成し、秒差が30秒以内のものに印をつけます。
式は以下の通り設定しています。
if [Diff] <= 30 then 1 else 0 endif
「Diff」列の秒差が30秒以内の場合に「1」を、それ以外の場合には「0」を出力します。
不要な列の削除
Selectツール(Preparation -> Select)を使用して、不要な列を削除します。
結果の確認
ワークフローを実行して結果を確認。完成です。
最後に
今回はWeekly ChallengeのChallenge #62: Find the Duplicate Clicksに挑戦しました。
明日もお楽しみに!
サンプルワークフローのご案内
クラスメソッドでご契約のユーザー様向けに、当ブログでご紹介したワークフローを専用ポータルにて公開しております。当エントリでご紹介したワークフローも公開予定ですので、ご参考にしていただきますと幸いです。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。