/*Google AdSense自動広告*/

2019年12月15日日曜日

Alteryxでフォルダ作成 mkdir するのに R tool を使う

Alteryxを業務で使っていると、どうにもファイル入出力が貧弱で萎えますよね?

「フォルダを作る」こんなことも、バッチかPowerShellを作って、コマンドを叩くしか方法がないらしい(AlteryxCommunityより)。

いや、もうボクの作業フォルダはyxwzとps1と出力ファイルでゴチャゴチャなんですけど…

ということで、R Toolを使ってAlteryx内でDynamicにフォルダ作成する方法を紹介します。

Alteryxワークフロー






フォルダ指定とディレクトリツール

フォルダ指定のダイアログを出して、結果をディレクトリツールに渡し、フォルダ内の*.csvファイルを開きます

Block Untilツール

Rでフォルダを作るのを先に完了させるため、実行順を強制的にしていします。Alteryxは並列処理するので、場合によっては「フォルダが無いよ!」エラーが出てしまうので。

フォルダ作成、フィールド付加 Append Field

Rツールでフォルダを作成し(コードは後述)、そのフォルダ名をFieldとして付加、それと元のファイル名で保存パスを作成します。

最後のOutputでは、ファイル名をダミーにしておいて、


フルパスを変更 Change FullPath を選ぶことで、保存フォルダとファイル名を自由に設定できます。元のファイル名を使ったり、日付を入れたり、Excelファイルの場合はファイル名+「|||シート名」でシート名を指定したり。



Rコード


df<-read.Alteryx("#1", mode="data.frame")
mkdir<-paste(df[1,1], "output", sep="")
dir.create(mkdir)
names(mkdir)<-c("outputFolder")
write.Alteryx(mkdir, 1)

df[1,1]は1行目1列目のデータ、この場合はグループ化した選択フォルダとなります。作りたいフォルダとして、今回はそのフォルダに"output"を付加しました。Rの文字列結合はpasteを使いますが、sep=""を指定しないとスペースが入るので注意します。

dir.create()でフォルダを作成します。元々存在する場合は警告がでるかも。

names()<-c("itemname")で項目名を指定します。指定しないと、長々とした自動項目名となり、テーブルによって変わってしまうので不便です。これをwrite.Alteryxで出力し、前述したOutput Fileのパスとして利用します。


まとめ

ここまでくるとハッと思いつきますね、「これならRで全部やればいいんじゃない?」
その通りだと思います。ちなみに、Alteryxはcommand実行ライセンスが別売りなので、自動実行したい時は別料金。

高額なライセンス料と見合う売り上げが見込めないなら、R勉強した方がいいんじゃない?コミュニティも英語ばかりだし、コードや英語にアレルギーがある人には無理なツールです。導入は慎重に!



0 件のコメント:

コメントを投稿