SAS:具有多个 ID 变量的 PROC FREQ

SAS: PROC FREQ with multiple ID variables

我有追踪特定眼部现象的数据。有的患者双眼都有,有的患者单眼都有。这是一些数据的样子:

EyeID   PatientID   STATUS  Gender
1   1   1   M
2   1   0   M
3   2   1   M
4   3   0   M
5   3   1   M
6   4   1   M
7   4   0   M
8   5   1   F
9   6   1   F
10  6   0   F
11  7   1   F
12  8   1   F
13  8   0   F
14  9   1   F

从上面的数据可以看出,一共有9位患者,他们的一只眼睛都出现了这种特殊现象。

我需要统计患有这种眼病的患者人数。 为了获得数据集中的患者总数,我使用了:

PROC FREQ data=new nlevels;
tables PatientID;
run;

为了统计有这种眼病的患者人数,我使用了:

PROC SORT data=new out=new1 nodupkey;
by Patientid Status;
run;

proc freq data=new1 nlevels;
tables Status;
run;

然而,它给出了具有该现象的患者的正确数量 (9),而不是没有该现象的正确数量 (0)。

我现在需要计算这种现象的性别分布。我用过:

proc freq data=new1;
tables gender*Status/chisq;
run;

然而,在交叉 table 中,出现该现象的患者人数是正确的 (9),但没有出现该现象的患者人数是正确的 (0)。有没有人对如何做这个卡方有任何想法,如果至少一只眼睛有这种现象,那么他们对这种现象呈阳性?

谢谢!

PROC FREQ 正在按照您的指示进行操作:计算 status=0 个案例。

一般来说,您在这里使用的是一些钝器来完成您想要完成的任务,而您可能应该使用更精确的工具。例如,PROC SORT NODUPKEY 有点矫枉过正,而且它并没有真正按照您的意愿行事。

要建立 has/doesn 的数据集,例如,让我们做一些事情。首先,我再添加一行 - 实际上没有的人 - 所以我们看到它起作用了。

data have;
  input eyeID patientID status gender $;
  datalines;
1   1   1   M
2   1   0   M
3   2   1   M
4   3   0   M
5   3   1   M
6   4   1   M
7   4   0   M
8   5   1   F
9   6   1   F
10  6   0   F
11  7   1   F
12  8   1   F
13  8   0   F
14  9   1   F
15 10   0   M
;;;;
run;

现在我们使用数据步骤。我们最后想要一个患者级别的数据集,我们现在有眼睛级别的数据集。所以我们创建了一个新的患者级别状态。

data patient_level;
  set have;
  by patientID;
  retain patient_status;
  if first.patientID then patient_status =0;
  patient_status = (patient_Status or status);
  if last.patientID then output;
  keep patientID patient_Status gender;
run;

现在,我们可以 运行 您的第二个 proc freq。另请注意,您有一个很好的患者数据集。

title "Patients with/without condition in any eye";
proc freq data=patient_level;
  tables patient_status;
run;
title;

您也可以进行卡方分析,但我不是统计学家,也不会深入探讨这是否是一种合适的分析。无论如何,它可能比您的第一个更好 - 因为它至少在一只眼睛中正确识别 has/doesn 没有状态。如果你需要知道眼睛的数量,你可能需要一个不同的指标。

title "Crosstab of gender by patient having/not having condition";
proc freq data=patient_level;
  tables gender*patient_Status/chisq;
run;
title;

如果您的实际数据显示每个患者都患有这种疾病,当然,卡方分析不太可能是合适的。