Challenge #59: Is it an Anagram? ~アナグラムの判別~ – Alteryx Weekly Challenge
こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。
当エントリは『Alteryx Weekly Challenge:Intermediate Level Advent Calendar 2018』の16日目です。
- 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 #59: Is it an Anagram?
お題
今回挑戦するお題はこちら。
「Input」側のデータはこちら。
「Output」側のデータはこちら。「Anagram」列で「word1」列と「word2」列がアナグラムかどうかが判別されています。
解答の概要
今回作成するワーフクローは以下の通りです。
- 文字列を1文字ずつに分割
- アナグラムか否かを判別
- データの結合
文字列を1文字ずつに分割
Record IDツール(Preparation -> Record ID)を使用して、IDを割り当てます。
Transposeツール(Transform -> Transpose)を使用して、割り当てたIDをキーとしてデータを縦持ちに変換します。
RegExツール(Parse -> RegEx)を使用して、文字列を分割します。
以下の通り設定しています。
- Regular Expression: (.)
- Output Method: Tokenize
- # of Columns: 10
データを確認すると、文字列を1文字ずつに分割できました。
アナグラムか否かを判別
Transposeツールを使用して、1文字ずつに分割した文字を1列にまとめます。
Sortツール(Preparation -> Sort)を使用して並べ替えます。
以下の順で並べ替えを行っています。
- RecordID: Ascending
- Name: Ascending
- Vale: Ascending
- Value2: Ascending
並べ替えたデータは以下のようになっています。
Cross Tabツール(Transpose -> Cross Tab)を使用して、IDごとに「word1」と「word2」の文字を1つにまとめます。
以下の通り設定しています。
- Group Data by these Values: RecordID
- New Column Headers: Name
- Values for New Columns: Value2
- Method for Aggregating Values: Concatenate
Formulaツール(Preparation -> Formula)を使用して、「Anagram」列をV_WString型で作成し、アナグラムかどうかを判別して「Yes」か「No」を出力します。
式としては以下の通り設定しています。
if [word1] == [word2] then "Yes" else "No" endif
「word1」列と「word2」列が等しい場合は「Yes」を、それ以外の場合は「No」を出力しています。
アナグラムかどうかの判別ができました。
データの結合
Joinツール(Join -> Join)を使用して、Record IDツールでIDを付与したデータと、Formulaツールでアナグラムかどうかを判別したデータを結合します。データの結合には「RecordID」列を使用します。また、「Output」側に用意されているデータに合わせて列を整えます。
結果を確認して完成です。
最後に
今回はWeekly ChallengeのChallenge #59: Is it an Anagram?に挑戦しました。
明日もお楽しみに!
サンプルワークフローのご案内
クラスメソッドでご契約のユーザー様向けに、当ブログでご紹介したワークフローを専用ポータルにて公開しております。当エントリでご紹介したワークフローも公開予定ですので、ご参考にしていただきますと幸いです。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。