例えば、アンケートの回答データで列名が「Q1」、「Q2」のように質問番号になっていることがあります。
一方で、別のデータフレーム(マスタデータ)には質問番号と対応する質問名のデータがあり、その質問名で回答データの列名を置き換える際の方法について紹介します。
アンケートの回答データでは、列名が質問番号(Q1、Q2、Q3など)になっていますが、これらを別のマスターデータに存在する実際の質問名(例:「性別」、「年齢」など)に置き換えたいです。しかし、2つのデータフレームの形式が異なるため、単純な置き換えができません。
回答データ: 1行1回答者ごとのデータで、質問ごとに列があるが、列名が質問番号になっている。
マスターデータ: 1行が1質問ごとで質問番号と質問名が列としてある。
まず、マスターデータの形式を回答データと同じワイド型に変更します。
マスターデータで「質問番号」と「質問名」の列を選択し、列ヘッダーメニューから「ロング型からワイド型へ」を選択します。
ダイアログで、キー列に「質問番号」、値の列に「質問名」を指定します。
「実行」することで、マスターデータが質問番号(Q1、Q2など)を列名とし、対応する質問名を値とする1行のデータに変換されます。
回答データとマスターデータの結合
次に、変換したマスターデータを回答データに追加します。
回答データのステップメニューから「マージ」を選択します。
マージのダイアログで、データフレームに変換したマスターデータを指定します。
オプションには以下の設定を行います。
実行することで、マスターデータの質問名が回答データの最後の行として追加されます。
最後に、追加された質問名の行を新しい列名として設定します。
ステップメニューから「その他」の「指定した行を列名にする」を選択します。
ダイアログで「下から」を選び、行番号に「1」を指定します。また、「全ての列のデータ型を再評価」にチェックを入れて実行します。
実行することで、質問番号が対応する質問名に置き換わります。
回答者IDの列名が「NA」となっているため、列名を変更します。
列ヘッダーメニューから「列名を変更」の「新しい列名を指定」を選択します。
「回答者ID」などの適切な名前を入力します。
これによって全ての列名をきれいに整えていくことができました。
これらの手順を実行することで、アンケートの回答データの列名を、マスターデータにある実際の質問名に置き換えることができます。この方法は、質問番号と質問名の対応関係が別のマスターデータに存在する場合によく使用されます。
Rのコードで実行をする場合は、以下のコードを使用します。
# 顧客満足度_Rawデータフレームに顧客満足度_Masterのデータフレームの行を追加します
bind_rows(
`顧客満足度調査_Master`, # マージ(行結合先のデータフレームの指定)
id_column_name = "ID",
current_df_name = "顧客満足度調査_Raw", # 結合元のデータフレーム名
force_data_type = TRUE # データ型を強制的に一致させる
) %>%
# 指定した行をデータフレームの列名(ヘッダー)として使用します
row_as_header(
row_index = -1, # 最後から1行目を列名に指定
clean_names = TRUE, # 列名をクリーンアップ
guess_data_type = TRUE # 各列のデータ型を自動推測して変換
)