如何解决如何在 SAS 中绘制一系列随时间变化的利率
我有 3 个数据集:“Complete”、“Incomplete”和“Case_List”。 “完整”包含已接种完整系列疫苗的个人记录; “不完整”是相同的,只是剂量数少于完整系列; “Case_List”包含特定感染的确诊病例。每个数据集都包含一个日期,我将其转换为一年中的一周(1:53),个人年龄,我将其划分为年龄组(最容易将年龄组称为 1:8,但它们的字符变量) ,和身份证。根据定义,“完整”中的每个 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 中绘制所有内容。
其他想法: 合并 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 中叠加图。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。