分隔组合在一个字符串中的值

Separating values that are combined in one string

我想在 Excel 或 SPSS 中解决这个问题:

我有组合成单个单元格的分类数据(每个数字代表一个医学诊断)。换句话说,一行(患者)有多个诊断。但是,我想知道每次诊断的频率。最好的方法是什么? (参考图片)

对于 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 个诊断。如果你有更多的解决方案将不得不适应多个数字。

假设列数相当规律,我建议对列使用文本,然后在单元格上使用 COUNTIF(如果它们是所需的值)。然而,有一个更强大和可重现的解决方案,涉及使用 SQL。如果下载免费版SQL 快递在这里:https://www.microsoft.com/en-gb/sql-server/sql-server-downloads

然后您可以导入 table 数据,操作方法如下:How to import an Excel file into SQL Server?

那么您可以使用更友好的SQL数据库来获得您想要的答案。例如,您可以使用 select 语句表示:

SELECT count(e_cerv_dis_state)
WHERE e_cerv_dis_state = '6'

也可以使用 CASE WHEN 语句添加诊断名称。