12.4 COUNT
COUNT var_name = var… (value…)
[/var_name = var… (value…)]…
Each value takes one of the following forms:
number
string
num1 THRU num2
MISSING
SYSMIS
where num1 is a numeric expression or the words LO or LOWEST
and num2 is a numeric expression or HI or HIGHEST.
COUNT 创建或替换一个数值 target(目标)变量,用于统计每个个案在一个或多个 test(检验)变量中某个 criterion(判定)值或一组判定的出现次数。
目标变量的值始终为非负整数。它们永远不会缺失。目标变量被赋予 F8.2 输出格式。参见 Input and Output Formats。任何变量,包括字符串变量,都可以作为检验变量。
检验变量的用户缺失值与其他任何值一视同仁。它们不会被当作系统缺失值。作为判定值或落在判定值范围内的用户缺失值,会像其他值一样被计数。不过(对于数值变量),关键字 MISSING 可用于指代所有系统缺失值和用户缺失值。
COUNT 目标变量按指定顺序赋值。在命令 COUNT A=A B(1) /B=A B(2). 中,发生以下动作:
- 统计 A 与 B 之间 1 出现的次数。
- A 被赋为该值。
- 统计 B 与 A 的新值之间 1 出现的次数。
- B 被赋为该值。
尽管如此,所有 COUNT 判定变量必须在过程执行之前就已存在——它们不能是该命令前面作为目标变量创建的!请将此类命令拆分为两个独立的命令。
12.4.1 计数示例
在数据集 hotel.sav 的调查结果中,一位经理想知道有多少受访者对问题 v1、v2 和 v3 给出了较低值的回答。这可以通过示例 12.4 中的代码找到。具体而言,该代码创建一个新变量,并用 v1–v2 中取值为 2 或更低的值的个数填充它。
get file="hotel.sav". count low_counts = v1 v2 v3 (low thru 2). list /variables v1 v2 v3 low_counts.示例 12.4: 统计 v1、v2 和 v3 的低值回答
在示例 12.4 中,COUNT 转换创建了一个新变量 low_counts,并使用 LIST 命令显示其值。
如果使用图形用户界面,必须采用两步过程来设置 COUNT 转换。第一个对话框(截图 12.3)用于选择变量。然后,必须单击标有“Define Values...”(定义值)的按钮,以打开用于选择要计数的取值的对话框。
截图 12.3: 已选择变量 v1、v2 和 v3,准备定义要计数的值
在此对话框中,必须选择要计数的值——本例中为不超过且包含 2 的所有值——如截图 12.4 所示,然后单击“Add”(添加)。可以添加任意多个范围。添加完所有所需范围后,单击“Continue”(继续)。
截图 12.4: 计数“Define Values”对话框,已选择 ‘lowest thru 2’
在结果 12.2 中,我们可以看到 COUNT 转换完成后 low_counts 的值。第一个值为 1,因为在 v1、v2 和 v3 中只有一个变量取值为 2 或更低。第二个值为 2,因为 v1 和 v2 的取值都为 2 或更低。
| v1 | v2 | v3 | low_counts |
|---|---|---|---|
| 4 | 2 | 3 | 1.00 |
| 1 | 1 | 4 | 2.00 |
| 4 | 2 | 2 | 2.00 |
| 3 | 1 | 3 | 1.00 |
| 5 | 3 | 1 | 1.00 |
| 2 | 2 | 5 | 2.00 |
| 3 | 2 | 4 | 1.00 |
| 1 | 4 | 5 | 1.00 |
| 3 | 2 | 3 | 1.00 |
| 2 | 5 | 4 | 1.00 |
| 4 | 2 | 2 | 2.00 |
| 2 | 1 | 4 | 2.00 |
| 1 | 2 | 5 | 2.00 |
| 2 | 3 | 3 | 1.00 |
| 4 | 1 | 1 | 2.00 |
| 1 | 1 | 5 | 2.00 |
| 1 | 5 | 5 | 1.00 |
结果 12.2: COUNT 转换运行后 v1、v2、v3 和 low_counts 的值