Challenge #59: Is it an Anagram? ~アナグラムの判別~ – Alteryx Weekly Challenge

2018.12.16

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。

当エントリは『Alteryx Weekly Challenge:Intermediate Level Advent Calendar 2018』の16日目です。

『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文字ずつに分割
  2. アナグラムか否かを判別
  3. データの結合

文字列を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)を使用して並べ替えます。

以下の順で並べ替えを行っています。

  1. RecordID: Ascending
  2. Name: Ascending
  3. Vale: Ascending
  4. 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日間の無料トライアルも実施中ですので、お気軽にご相談ください。

alteryx_960x400