データをJSONファイルとしてエクスポートしたい場合があります。
JSONファイルの優れた点の1つは、データをネストされた構造にすることができることです。
下記は1行が各注文の明細を表す売上データです。
エクスポートボタンからこのデータをJSONファイルとしてエクスポートしたとします。
その場合は、フラットなJSON形式のデータがエクスポートされます。
しかし、顧客が複数の注文をしていることがあり、JSON形式がネストされたデータをサポートできることを考えると、次のような形でデータを作成したい場合があります。
上記のデータを見ると、最初の顧客の複数の注文が「Orders」プロパティ内にネストされています。
このタイプのJSON形式のデータはExploratoryで生成できますが、カスタムRコマンドを使用する必要があります。
まず、顧客ごとにデータをグループ化して、次のステップで顧客ごとにネストされた注文データを作成できるようにします。
顧客IDでグループ化します。
次に、カスタムRコマンドの「nest」関数を使用して、ネストされたデータフレームを作成します。
ステップメニューから「カスタムRコマンド」を選択します。
次のようなコマンドを入力します。
nest(国, 注文日, 製品ID, 製品名, 売上, .key="Orders")
このコマンドでは、データのネストされた部分に配置する列を選択しています。顧客ごとに複数の注文を作成し、注文情報をデータのネストして作成したかったので、注文関連の列を指定しています。
nest関数の最後にある .key
という引数は、ネストされたデータを保持する列の列名を設定しています。
カスタムRコマンドを実行すると、2つの列ができます。1つはグループ化の列ともう1つはネストされたデータを保持する列です。
理想的には、エクスポートボタンのメニューからネストされたデータをJSONファイルとしてエクスポートしたいですが、現時点ではネストされたデータはサポートされていません。したがって、データをJSONファイルとしてエクスポートするには、以下のようなカスタムRコマンドを実行する必要があります。
ステップメニューから「カスタムRコマンド」を選択します。
次のコマンドを入力して実行します。
(function(x){ jsonlite::write_json(x, "~/test.json", pretty=TRUE); x })
上記のコマンドは、"jsonlite"パッケージからwrite_json
という関数を呼び出す関数を作成し、"test.json"というファイル名のJSONファイルをユーザーのホームディレクトリに保存します。
エクスポートされたJSONファイルを開くと、次のようなものが表示されます。
ネストされたデータを作成してJSONファイルとしてエクスポートする方法、注意すべきことが1つあります。
エクスポートのステップはこのデータフレームの最後のステップにあるため、このデータフレームを開くたびにエクスポートのステップが実行されます。つまり、毎回JSONファイルが再作成されることになります。
特に大きなデータがある場合は、エクスポートステップを実行したくない場合があります。
ステップを無効化して、JSONファイルをエクスポートする必要がある場合にのみ有効にすることができます。