代码簿生成器
每行列出一个变量——变量名、标签、类型、值标签、缺失代码——即可得到一张可粘贴到 README 中的代码簿表格,以及把同样的标签应用到数据上的语法:SPSS 的 VARIABLE LABELS、VALUE LABELS 和 MISSING VALUES,或 R 的因子与 haven 代码。工具还会依照 SPSS 的限制检查变量名和标签。免费,无需注册。您输入的内容不会离开您的浏览器。
您的变量
字段按以下顺序排列,用 | 或制表符分隔(可直接从电子表格粘贴):变量名 | 标签 | 类型 | 值标签 | 缺失代码 | 备注。只有变量名是必填的。
类型为 度量、有序、名义 或 字符串(英文 scale、ordinal、nominal、string 同样可用)。值标签写作 code=label 对,用分号分隔。缺失代码用逗号分隔;范围写作 997 to 999,开放端点用 LO 或 HI。
基础 R 会把值标签转为因子,把用户缺失代码转为 NA。haven 风格则像 SPSS 一样把代码与标签保留在一起。
用于 R 语法中。无效的名称会回退为 df。
代码簿
请在上方输入或粘贴变量,或点击“试用示例”。
导出
请在打开数据文件的情况下运行:VARIABLE LABELS、VALUE LABELS、MISSING VALUES 和 VARIABLE LEVEL。它不会创建变量,也不会设置字符串宽度。
如何使用代码簿生成器
- 1. 列出变量。 每行一个,字段之间用竖线或制表符分隔,以便直接从电子表格粘贴:变量名、标签、类型、值标签、缺失代码、备注。只有变量名是必填的。
- 2. 描述取值。 值标签写作 code=label 对,用分号分隔(1=女性; 2=男性)。缺失代码用逗号分隔,范围写作 997 to 999。类型可选 度量、有序、名义 或 字符串(也可写英文 scale、ordinal、nominal 或 string)。
- 3. 查看检查提示。 表格显示了工具的理解结果。“需要检查的内容”列出被跳过的配对、重复的变量名,以及 SPSS 会拒绝的内容,并附行号。
- 4. 导出。 选择 SPSS 语法、R 语法、Markdown 表格或 CSV,然后复制或下载。对于 R,请选择基础 R 或 haven,并为数据框命名。
代码簿的用途
代码簿是数据集的钥匙。一列名为 q7、其中全是 1、2 和 9 的数据,对读者而言毫无意义;一年之后,对您自己也是如此——除非某份文档说明 q7 问的是什么、每个数字代表什么,以及哪些数字根本不是答案。代码簿为每个变量记录其名称、描述性标签、类型、带标签的取值以及缺失数据代码。它是合作者或审稿人首先查找的内容。
表格和代码来自同一份列表,因此两者不会出现偏差。本工具不读取数据文件:您输入的是变量定义,不涉及任何数据值。
类型与缺失代码
| 类型 | 适用于 | 在 SPSS 中 | 在基础 R 中 |
|---|---|---|---|
| 度量(scale) | 可测量的数量:年龄、收入、考试成绩 | VARIABLE LEVEL SCALE | as.numeric() |
| 有序(ordinal) | 有序类别:1 至 5 分的同意度量表 | VARIABLE LEVEL ORDINAL | 有序因子(ordered factor) |
| 名义(nominal) | 无序类别:性别、国家 | VARIABLE LEVEL NOMINAL | 因子(factor) |
| 字符串(string) | 文本:自由作答、参与者 ID | 不设置级别 | as.character() |
度量变量仍可带有值标签,例如表示“拒绝回答”的代码。基础 R 会保持其为数值,而不会将其转换为因子。
缺失代码是代表“没有回答”的数字:-99 表示拒绝回答,-98 表示不知道,997 至 999 表示几种原因并存。若置之不理,这些数字会进入您的均值。将它们声明为用户缺失值,可告诉 SPSS 在计算时排除它们,同时保留文件中的代码。基础 R 没有这样的标记,因此基础语法会把代码转换为 NA;haven 版本则像 SPSS 一样保留它们。
SPSS 的限制
检查工具依据 IBM 的命令语法参考。变量名最多 64 字节,必须以字母或 @ 开头,不能以句点开头或结尾,并且不能是保留字 ALL、AND、BY、EQ、GE、GT、LE、LT、NE、NOT、OR、TO 或 WITH。以 # 开头的名称表示临时变量,以 $ 开头的名称保留给系统变量,因此工具会拒绝这两种名称。值标签最多 120 字节。数值变量最多可以有三个离散缺失值,或一个范围加一个额外的离散值,例如 LO THRU 0, 999。IBM 建议每行语法不超过 256 个字符;工具将上限设为 251 字节,这是人们报告 SPSS 会发出警告的临界值,因此过长的标签会在失败之前被标出。请参阅 IBM 的 变量名 和 VALUE LABELS 页面。
示例
点击“试用示例”即可载入五个调查变量:一个文本型的 ID、一个数值型的年龄、一个带有四个标签值的名义型性别、一个五点有序条目,以及一个收入变量,其代码 997 至 999 为缺失值。SPSS 输出由四条命令组成。VARIABLE LABELS 涵盖全部五个变量,VALUE LABELS 涵盖性别和有序条目,MISSING VALUES 涵盖四个变量(年龄、性别、有序条目和收入),VARIABLE LEVEL 涵盖四个非文本变量。以下是它生成的 MISSING VALUES 命令:
示例:MISSING VALUES 命令
MISSING VALUES age (-99) /gender (-99) /sat1 (-99, -98) /income (997 THRU 999).
在 R 中,基础版本会把这些代码重新编码为 NA,并把带标签的变量转为因子,其中有序条目为有序因子。haven 版本调用 haven::labelled_spss(),其参数 labels、na_values、na_range 和 label 分别保存同样的四类信息。工具会将每一项写成一行,因此您可以删除不需要的变量。
限制与注意事项
- 它不读取您的数据。 请核对您列出的每个代码确实出现过,并且没有遗漏任何出现过的代码。
- R 语法会改变您的数据。 基础版本会覆盖每一列。请在副本上操作,并对照原始文件检查每个
as.numeric();无法读为数字的值会变成NA,并伴随警告。 - SPSS 字符串变量。 字符串在创建时需要设定宽度,而这里的语法不会创建变量。请在打开数据的情况下运行。
- 保持代码一致。 在可能的情况下,在各变量之间使用相同的缺失代码,并且绝不使用可能是真实答案的代码。
常见问题
- 研究中的代码簿是什么?
- 代码簿是解释数据集的文档:说明每个变量叫什么、测量什么、如何编码,以及哪些代码表示缺失数据。从未见过数据的人应当能够读懂代码簿并解释每一列。它有时也被称为数据字典。
- 代码簿应包含哪些内容?
- 至少应包括每个变量的名称、标签和类型,带编码变量的值标签,以及缺失数据代码。问卷类的代码簿通常还会加上题目的确切措辞、回答选项、受访对象,以及关于重新编码或派生变量的说明。本工具涵盖前一组内容,并设有备注列以容纳其余内容。
- 如何在 SPSS 语法中添加值标签和缺失值?
- 使用 VALUE LABELS,后面跟变量名和代码-标签对,例如 VALUE LABELS gender 1 "Female" 2 "Male"。使用 MISSING VALUES 时,在括号中写出变量及其代码,例如 MISSING VALUES age (-99)。每条命令以句点结束。本工具会同时生成这两类命令,每个变量一个代码块,块之间以斜杠分隔。
- SPSS 变量最多可以有多少个缺失值?
- 数值变量最多可以有三个单独的用户缺失值,或者一个范围加上一个额外的离散值。范围使用 THRU,LO 和 HI 分别代表最低值和最高值。超出此限制的变量会被工具标记。
- 在 R 中应使用基础 R 的因子还是 haven?
- 如果只在 R 中分析数据,请使用基础 R:因子承载标签,NA 承载缺失代码。如果数据来自或将返回 SPSS、Stata 或 SAS,请使用 haven,因为 labelled_spss() 会把代码、标签和用户缺失值保存在一起。haven 自身的文档将该类描述为对 SPSS 用户自定义缺失值的建模。
- 我的数据会被上传吗?
- 不会。一切都在您的浏览器中运行,您输入的内容也不会被上传。本工具只需要变量定义,不需要您的数据值。