列名が設定されていないデータ(X1、X2、X3のような自動生成された列名)に対して、列の順番に基づいて適切な列名を一括で設定する方法を紹介します。
列名が設定されていないデータファイルを扱う方、別で管理されている列名対応表を使ってデータを整備したい方にお役立ていただける機能です。
CSVファイルやExcelファイルを読み込んだ際に、列名の情報が含まれておらず、ExploratoryがX1、X2、X3といった形で自動的に列名を振っている状態のデータがあります。このような状況のときに、列名の対応表が存在する場合、その情報を使って適切な列名に変更したいという需要があります。
列番号と列名の対応表を利用して、列の順番に基づいて列名を一括変更することが可能です。AIプロンプトを使用した自動的な方法と、Rコマンドを直接入力する手動の方法があります。
今回は1行が1つの注文を表し、列には顧客情報、注文日、商品情報などが含まれているデータを利用します。データには列名の情報が含まれておらず、X1からX23までの自動生成された列名が設定されています。
また各列の情報は以下のように別のテーブル(今回の例ではGoogle スプレッドシート)で管理されています。
テーブルビューから「AIデータ加工」ボタンをクリックします。
AIプロンプトのダイアログが開いたら、プロンプト入力欄に以下のような形式でプロンプトを入力し、実行します。
以下の順で列名を設定して
注文日
出荷日
配送タイプ
顧客ID
顧客名
顧客セグメント
郵便番号
市
州
国
地域
マーケット
製品ID
製品カテゴリー
製品サブカテゴリー
製品名
売上
数量
割引率
ダイレクトメール費用
オンライン広告費用
注文の優先度
返品
プロンプトを実行すると、AIが自動的に列名変更のRスクリプトを生成します。生成されたコードでは、X1からX23までの各列が指定した順番の列名に対応して変更される処理が実行されます。
これで、X1が注文日、X2が出荷日といった形で、すべての列名が適切に設定されました。
AIプロンプトが利用できない場合、手動でRコマンドを使用して列名を変更することができます。
具体的には、rename関数を利用すると、
rename(注文日 = 1, 出荷日 = 2)
のように、イコールの後に数値を指定すると、その番号の列を変更できます。
多数の列を一括で変更するため、Googleスプレッドシートなどで関数を使用してRコマンド用のテキストを自動生成します。B列に列名、A列に列番号を配置し、以下のような関数を使用します。
=B2&"="&A2&","
この関数により、「注文日=1,」「出荷日=2,」といった形式のテキストが自動生成できます。全列分の関数を作成し、生成されたテキストをコピーします。
ステップメニューから「Rコマンド」を選択し、直接Rコマンドを入力できる状態にします。
以下の形式でrenameコマンドを入力し、先ほどコピーしたテキストを貼り付けます。 ```
rename( 注文日=1, 出荷日=2, 顧客ID=3, ... 郵便番号=7 )
最後にカンマが残っていないかを確認してから実行ボタンをクリックします。
これで列番号を元に、一気に全ての列名を変更することができました。
この方法により、AIプロンプトを使用しなくても、列の対応表がある場合には列番号を元に簡単に列名を一括変更することが可能です。