コードブック生成ツール
変数を1行に1つずつ、名前、ラベル、型、値ラベル、欠損コードの順に書くと、READMEに貼り付けられるコードブック表と、同じラベルをデータに適用する構文が得られます。SPSSではVARIABLE LABELS、VALUE LABELS、MISSING VALUES、Rではfactorやhavenの形式です。名前とラベルはSPSSの制限に照らしてチェックされます。無料で、登録は不要です。入力した内容がブラウザの外に送られることはありません。
変数
次の順に項目を書き、| またはタブで区切ります(スプレッドシートから直接貼り付けられます):name | label | type | value labels | missing codes | notes。必須なのは name だけです。
型は scale、ordinal、nominal、string のいずれかです。値ラベルは code=label の組で、セミコロンで区切ります。欠損コードはカンマで区切ります。範囲は 997 to 999 のように書き、終わりが開いている場合は LO または HI を使います。
基本Rは値ラベルをfactorに、ユーザー欠損のコードをNAに変換します。havenの形式は、SPSSと同じようにコードとラベルを一緒に保持します。
R構文で使われます。無効な名前の場合は df になります。
コードブック
上に変数を入力するか貼り付けるか、「例を試す」を押してください。
書き出し
データファイルを開いた状態で実行してください。VARIABLE LABELS、VALUE LABELS、MISSING VALUES、VARIABLE LEVELを書き出します。変数は作成せず、文字列の幅も設定しません。
コードブック生成ツールの使い方
- 1. 変数を一覧にします。 1行に1つずつ、項目は | かタブで区切ります。スプレッドシートから直接貼り付けられます。項目は name | label | type | value labels | missing codes | notes の順です。必須なのは名前だけです。
- 2. 値を説明します。 値ラベルはコード=ラベルの組で、セミコロンで区切って書きます(1=女性; 2=男性)。欠損コードはカンマで区切り、範囲は 997 to 999 のように書きます。型は scale、ordinal、nominal、string から選びます。
- 3. 確認事項を読みます。 表には読み取られた内容が表示されます。「確認事項」には、スキップされた組、重複した名前、SPSSが受け付けない箇所が行番号付きで並びます。
- 4. 書き出します。 SPSS構文、R構文、Markdownの表、CSVから選び、コピーまたはダウンロードします。Rの場合は、基本Rかhavenを選び、データフレームの名前を指定します。
コードブックの役割
コードブックはデータセットの鍵です。q7 という列に1、2、9の数字が並んでいても、文書が q7 の質問内容、各数字の意味、どの数字が回答ではないかを説明するまでは、読者にも1年後の自分にも意味が分かりません。コードブックは変数ごとに、名前、説明的なラベル、型、ラベルの付いた値、欠損データのコードを記録します。共同研究者や査読者が最初に見るものです。
表と構文は同じ一覧から作られるため、食い違うことがありません。このツールはデータファイルを読みません。定義を入力するだけで、データの値は扱いません。
型と欠損コード
| 型 | 用途 | SPSSでの指定 | 基本Rでの扱い |
|---|---|---|---|
| 尺度 | 測定値:年齢、所得、テスト得点 | VARIABLE LEVEL SCALE | as.numeric() |
| 順序 | 順序のあるカテゴリー:1〜5の同意尺度 | VARIABLE LEVEL ORDINAL | 順序付きfactor |
| 名義 | 順序のないカテゴリー:性別、国 | VARIABLE LEVEL NOMINAL | factor |
| 文字列 | テキスト:自由記述、参加者ID | 尺度水準は設定されません | as.character() |
尺度の変数にも値ラベルを付けられます。たとえば「回答拒否」を表すコードです。基本Rではこれを数値のまま保ち、factorにはしません。
欠損コードは「回答なし」を表す数字です。たとえば、回答拒否は -99、「わからない」は -98、いくつかの理由をまとめた場合は 997 to 999 です。そのままにすると、これらの数字が平均に入ってしまいます。ユーザー欠損として宣言すると、SPSSは計算からそれらを除外し、データには残します。基本Rにはこの指定がないため、基本の構文では欠損コードを NA に変換します。havenの版ではSPSSと同じように保持します。
SPSSの規則
チェックツールはIBMのコマンド構文リファレンスに従っています。変数名は64バイト以内で、文字か@で始まり、ピリオドで始まったり終わったりしてはいけません。また、ALL、AND、BY、EQ、GE、GT、LE、LT、NE、NOT、OR、TO、WITH という予約語は使えません。# で始まる名前は一時変数になり、$ で始まる名前はシステム変数用に予約されているため、どちらもツールが拒否します。値ラベルは120バイト以内です。数値変数は、個別の欠損値を3つまで、または範囲を1つと個別の値を1つまで指定できます。範囲は THRU を使い、LO と HI は最小値と最大値を表します。IBMは構文の1行を256文字以内に収めるよう勧めています。ツールは251バイトを上限にしています。SPSSが警告を出すとの報告がある長さだからです。そのため、非常に長いラベルは失敗する前に警告されます。IBMの変数名とVALUE LABELSのページを参照してください。
具体例
「例を試す」を押すと、5つの調査変数が読み込まれます。テキストのID、数値の年齢、4つのラベルを持つ名義の性別、5段階の順序の項目、そしてコード997から999が欠損となる所得です。SPSSの出力は4つのコマンドです。VARIABLE LABELSは5つの変数すべて、VALUE LABELSは性別と順序の項目、MISSING VALUESは4つ(年齢、性別、順序の項目、所得)、VARIABLE LEVELはテキスト以外の4つの変数を扱います。次は、ツールが書き出すMISSING VALUESコマンドです。
例:MISSING VALUESコマンド
MISSING VALUES age (-99) /gender (-99) /sat1 (-99, -98) /income (997 THRU 999).
Rでは、基本の版はそれらのコードを NA に変換し、ラベルの付いた変数をfactorにします。順序の項目は順序付きfactorになります。havenの版は haven::labelled_spss() を呼び出します。その引数 labels、na_values、na_range、label が、同じ4つの情報を保持します。ツールは各行を1行ずつ書き出すので、不要な変数は削除できます。
制限と注意点
- データは読み込みません。 指定したコードが実際に存在するか、指定していないコードが存在しないかは、自分で確認してください。
- R構文はデータを変更します。 基本の版は各列を上書きします。コピーを使って作業し、すべての
as.numeric()を元のファイルと照合してください。数値として読めない値は、警告付きでNAになります。 - SPSSの文字列変数。 文字列は作成時に幅が必要です。ここで出力される構文は変数を作成しないため、データを開いた状態で実行してください。
- コードを一貫させます。 可能な範囲で、変数をまたいで同じ欠損コードを使ってください。実際の回答になりうるコードは決して使わないでください。
よくある質問
- 研究におけるコードブックとは何ですか?
- コードブックは、データセットを説明する文書です。各変数の名前、測定内容、コードの付け方、欠損データを表すコードを説明します。データを見たことがない人でも、コードブックを読めば、どの列も解釈できるはずです。データ辞書と呼ばれることもあります。
- コードブックには何を含めるべきですか?
- 最低限、各変数の名前、ラベル、型、コード化された変数の値ラベル、欠損データのコードを含めます。調査のコードブックでは、質問の正確な文言、回答の選択肢、対象者、再コーディングや導出変数についての注記もよく加えられます。このツールは最初のグループを扱い、残りのためにメモの列があります。
- SPSS構文で値ラベルと欠損値を指定するには?
- 値ラベルは VALUE LABELS を使い、変数名のあとにコードとラベルの組を書きます(例:VALUE LABELS gender 1 "Female" 2 "Male")。欠損値は MISSING VALUES を使い、変数名と括弧内のコードを書きます(例:MISSING VALUES age (-99))。各コマンドはピリオドで終わります。ツールは両方を、変数ごとのブロックにスラッシュで区切って書き出します。
- SPSSの変数には欠損値をいくつ指定できますか?
- 数値変数には、個別のユーザー欠損値を3つまで、または範囲を1つと個別の値を1つまで指定できます。範囲には THRU を使い、LO と HI は最小値と最大値を表します。この上限を超える変数は、ツールが警告します。
- Rではbaseのfactorとhavenのどちらを使うべきですか?
- Rだけでデータを分析する場合は、基本Rを使ってください。factorがラベルを、NAが欠損コードを担います。データがSPSS、Stata、SASから来た、あるいは戻る場合は haven を使ってください。labelled_spss() が、コード、ラベル、ユーザー欠損値を一緒に保持します。havenの公式文書では、このクラスはSPSSのユーザー定義欠損をモデル化するものだと説明されています。
- データはアップロードされますか?
- いいえ。すべてブラウザ内で処理され、入力した内容はアップロードされません。ツールが必要とするのは変数の定義だけで、データの値は必要ありません。