首页 > 解决方案 > 循环几个字符串变量。如何计算重复?

问题描述

正如前面的问题中提到的(请用完美的语法回答),我有一个非常大的数据集,每个患者有多个诊断(25 个),由 SPSS 中的 ICD 10 代码表示。为简洁起见,我发布了我尝试复制的内容的快照,该快照仅使用标记为 DIAG1 到 DIAG3 的 3 个字符串变量和随机代码的测试数据集:

在此处输入图像描述

假设每一行代表一个病人。“O74Updated”列中显示的结果是我试图复制的结果。本质上是一个存在/不存在变量,其数字表示患者在任何“诊断”列中进行“O74”诊断的次数。在“O74”列中生成结果的当前工作语法是:

compute O74 = 0.
do repeat x = DIAG1 to DIAG3.
if O74=0 O74 = (char.index(UPPER(x),'O74')>0).
end repeat.

如前所述,上面提供的语法运行得非常好。但是,我遇到了数百名患者,他们多次诊断出上述代码无法准确捕获的“O74”。我想通过为每位患者提供总计数来确保所有 O74 的发生率。是否可以确保在上面提供的语法中考虑了具有多种诊断的患者?

再次,我非常感谢对 SPSS 中可能是一个非常基本的语法问题的任何输入/指导。

标签: stringloopssyntaxreplicationspss

解决方案


如果任何诊断中包含“O74”,则您帖子中的语法会产生 1 。语法中的一个小改动将使其计算出现次数:

compute O74 = 0.
do repeat x = DIAG1 to DIAG3.
if char.index(UPPER(x),'O74')>0 O74 = O74 + 1.
end repeat.

推荐阅读