0

我有 3 个数据集:“完整”、“不完整”和“Case_List”。“完整”包含已接种全系列疫苗的个人记录;“不完整”是相同的,只是剂量数量少于完整系列;“Case_List”包含特定感染的确诊病例。每个数据集都包含一个日期,我已将其转换为一年中的一周(1:53),个人年龄,我已将其划分为年龄组(最容易将年龄组称为 1:8,但他们的字符变量) , 和一个 ID。根据定义,“完成”中的每个 ID/记录都是“不完整”的,因为个人在第 2 剂之前接受了第 1 剂,但我无法访问任何个人标识符以将它们链接到“Case_List”ID。

我是 SAS 新手,还没有找到足够的绘图说明,以便能够绘制一个图表,其中 Case_List over Week(1:53) 与 Incomplete over Week(1:53) 和 Complete over Week(1:53) 重叠,以及所有这些都按 Age_Group(1:8) 细分。如果我无法弄清楚,我将在 R 中绘制所有内容。

其他想法:合并不完整和完整是否更容易,所以只有两个数据集?已经包含 3 条线的图的 8 次迭代对于一个图来说是否过于混乱?

谢谢你的帮助。

4

1 回答 1

1

在 SAS 中,您不能叠加来自多个数据集的图 - 您需要将所有内容组合到一个数据集中。

但是,您不必“合并”任何东西,只需将它们设置在一起并添加“类别”变量即可。

data incompletes completes case_list;
    call streaminit(7);
    do week = 1 to 53;
      do _i = 1 to 200;
        age = rand('Integer',1,8);
        _output = rand('Uniform');
        if _output lt (0.1+week/100) then output completes;
        if _output lt (0.2+week/80) then output incompletes;
        if _output lt (0.2-((week/150)**2)) then output case_list;
      end;
    end;
run;



data total;
  set completes(in=_comp) incompletes(in=_incomp) case_list(in=_case);
  if _comp then category="Complete";
  else if _incomp then category="Incomplete";
  else category="Disease Cases";
run;
    
    

然后,您可以叠加图,具体取决于您想要做什么。

proc sgplot data=total;
  vline week/group=category;
run;

您可以按照评论中的说明按年龄添加面板,或者您有一些其他选项,具体取决于您的具体操作,但我认为这正是您真正想知道的 - 我如何在 SAS 中叠加图。

于 2021-06-11T15:06:23.307 回答