首页 > 解决方案 > 如何在 sas 的特定列中计算变量的频率

问题描述

我想与每个主题 ID 一起创建一个变量,变量是 ci_em_ti = COUNT 以下变量中的“受损”值:bvmdrt_cutoff、craftivmmt_cutoff、craftpimmt_cutoff、craftvdelt_cutoff、craftpdelt_cutoff、nlairt_cutoff、nlsdt_cutoff、nlldt_cutoff

我应该如何在 SAS 中执行此操作?

我试过了

countc(cats(of bvmdrt_cutoff, craftivmmt_cutoff, craftpimmt_cutoff, craftvdelt_cutoff, craftpdelt_cutoff, nlairt_cutoff, nlsdt_cutoff), "Impaired")` 

但它不起作用

在此处输入图像描述

标签: sas

解决方案


该函数COUNTC()计算任何列出的字符出现的次数。通过搜索Impaired您正在搜索字符:adeiImpr。因此,“Missing”的一个值将在计数中贡献 2,因为它有两个小写 i,而“Normal”将计为 3,因为字母 r、m 和 a。由于所有字符都在搜索列表中,因此“Impared”将计为 8。

该函数COUNT()将搜索子字符串出现的次数,因此您可以尝试一下。

您确定您的值是字符串吗?相反,如果它们是附加了用户定义格式的数字,则该CATS()函数将不使用格式化值。因此,您将需要搜索代码而不是解码。

OFPS当列表中只有一个变量时,不需要添加关键字。删除OF或删除逗号。


推荐阅读