AlteryxのRツールでSpatial Objectを扱う

AlteryxのRツールでSpatial Objectを扱う

2017.05.30

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

こんにちは、小澤です。

今回は、AlteryxのR ToolでSpatial Objectを含むデータを扱う方法について書かせていただきます。

デフォルト時の挙動

まずは、R Toolの入力としてSpatial Objectを含むデータを与えた時にどのような動きになるか見てみましょう。 Map Input Toolを利用して適当なポイントを用意しています。

スクリーンショット 2017-05-30 15.08.36

データとしては以下のようになっています。

スクリーンショット 2017-05-30 15.23.52

これをR Toolで読み込んでそのまま出力しみます。

the.data <- read.Alteryx("#1")
write.Alteryx(the.data, 1)

出力された結果を確認すると以下のようになっています。

スクリーンショット 2017-05-30 15.25.35

データの型も文字列になってしまっています。

スクリーンショット 2017-05-30 15.26.23

Spatial Objectを入力として扱う

では、Spatial Objectを持つデータに対して途中でR Toolを使った処理を噛ませたい場合はどうすればいいのでしょうか。 R Toolにデータを読み込ませる際にDataFrameとしてではなく、listとして読み込ませることでSpatial Objectをそのまま扱うことができます。

the.data <- read.Alteryx("#1", "list")
write.Alteryx(the.data, 1)

Rで読み込んだデータをprint出力で確認してみると以下のような形式になっていることが確認できます。

スクリーンショット 2017-05-30 15.41.11

データは、{sp}パッケージのSpatialPoints型のようなので、coordinates関数を使って、x, yの値を取り出してやることができます。 以下のコードを実行すると、1件目のデータの座標が取得できます。

xy <- coordinates(the.data$SpatialObj[[1]]
print(xy)
print(class(xy))

スクリーンショット 2017-05-30 16.42.38

Spatial Objectでlineやpolygonを扱っている場合も同様、{sp}パッケージのPolygonオブジェクトとして取得することができます。

# lineからPolygonオブジェクトを取得する場合
# <行番号>には実際のデータの行番号を入れる
polygonsObj[[<行番号>]]@lines[[1]]@Lines

# polygonからPolygonオブジェクトを取得する場合
# <行番号>には実際のデータの行番号を入れる
polygonsObj[[<行番号>]]@polygons[[1]]@Polygons

これらに関して、R上でどのように扱うかはパッケージのドキュメントを参照してください。

終わりに

今回はSpatial Objectを扱うデータをR Toolで読み込む方法を紹介しました。

実際には、これ自体を利用するシーンというのは少ないかもしれませんが、R ToolでSpatial Objectを含むデータを扱う際の注意点として覚えておくといいかもしれません。


データ分析基盤ならCSAにおまかせください!

クラスメソッドでは、データ分析に関わる皆様の作業コストを削減し、分析アクションを促進・効率化・自動化するためのデータ分析基盤「カスタマーストーリーアナリティクス」を提供・展開しています。興味をお持ち頂けた方は下記バナーをクリックし、詳細をご覧頂けますと幸いです。(各種問い合わせも承っております)

データ分析基盤を最短1ヶ月で導入可能


また、現在クラスメソッドでは毎週無料の相談会を開催しています。データ分析基盤の構築から、BIツール、データ統合など、ビッグデータ分析の導入や活用、技術についてお気軽にご相談ください。

データ分析相談会

この記事をシェアする

データ分析基盤を最短1ヶ月で導入できる

関連記事