我想在Excel或SPSS中解决此问题:
我有分类数据(每个数字代表医学诊断),这些数据被组合到单个单元格中。换句话说,一行(患者)具有多个诊断。但是,我想知道每次诊断的频率。最好的方法是什么? (请参阅图片以供参考)
答案 0 :(得分:1)
对于SPSS:
首先只是创建一些示例数据以进行演示:
data list free/e_cerv_dis_state (a20).
begin data
"{1/2/3/6}" "{1/2/4}" "{2/4/5}" "{1/5/6}" "{4}" "{4/5/6}" "{1/2/3/4/5/6}"
end data.
现在,以下代码将为每个可能的诊断创建一个单独的变量,如果诊断存在于原始变量中,则会在其中放入1。
do repeat vr=diag1 to diag9/vl=1 to 9.
compute vr=char.index(e_cerv_dis_state, string(vl, f1) ) > 0.
end repeat.
freq diag1 to diag6.
请注意,这最多只能用于9个诊断。如果您不止于此,则必须将解决方案调整为多个数字。
答案 1 :(得分:1)
假设列数相当规则,我建议对列使用文本,然后在单元格上使用COUNTIF(如果它们是所需的值)。但是,有一个更健壮和可重现的解决方案,涉及使用SQL。如果您在此处下载免费版本的SQL Express:https://www.microsoft.com/en-gb/sql-server/sql-server-downloads
然后,您可以导入数据表,方法如下:How to import an Excel file into SQL Server?
然后,您可以使用更友好的SQL数据库来获取所需的答案。例如,您可以使用一条选择语句,内容为:
SELECT count(e_cerv_dis_state)
WHERE e_cerv_dis_state = '6'
也可以使用CASE WHEN语句添加诊断名称。