如何在 SAS 中绘制随时间变化的一系列利率

How to Plot a Series of Rates Over Time in SAS

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

我是 SAS 的新手,还没有找到足够的绘图说明来绘制一个图表,其中 Case_List 超过一周 (1:53) 覆盖了不完整的一周 (1:53)并在一周内完成 (1:53),所有这些按 Age_Group(1:8) 细分。如果我无法弄清楚,我将在 R 中绘制所有内容。

其他想法: 合并 Incomplete 和 Complete 是否更容易,因此只有两个数据集? 已经包含 3 条线的图形的 8 次迭代对于一个图来说是否太混乱了?

感谢您的帮助。

在 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.