【问题标题】:SAS How to sum a variable in duplicate recordsSAS如何对重复记录中的变量求和
【发布时间】:2020-10-25 03:25:28
【问题描述】:

这里是 Noob SAS 用户。 我有一个带有 PatientID 的医院数据集和一个计算入院和出院天数的变量。

那些多次入院的患者会出现相同的患者 ID,并记录他们每次住院的天数。

我想总结每位患者的住院总天数,然后只有一个患者 ID 记录包含所有住院天数的总和。有谁知道我会怎么做?

【问题讨论】:

  • 您是否尝试过 Proc MEANS 使用类或 ID ?或 Proc SQL 按 ID 分组?如果您在编写代码时遇到问题,请添加一些示例数据和您编写的代码。
  • 请提供可直接重现的样本数据并说明您遇到的问题。

标签: sas duplicates


【解决方案1】:

你想select distinctsumdays_in_hospitalgroup by patientID 这会得到你想要的:

proc sql;
create table want as
select distinct
patientID,
sum(days_in_hospital) as sum_of_days
from have
group by patientID;
quit;

【讨论】:

  • 您不需要distinct 关键字,因为查询有group by 子句。
  • 谢谢汤姆,这是真的。
【解决方案2】:

您也可以使用 proc summary。

proc summary data= hospital_data nway;
     class patientID;
     var days;
     output out=summarized_data (drop = _type_ _freq_) sum=;
run;

这将创建一个名为 summary_data 的新数据集,其中包含每个患者 ID 的总天数。 (nway 选项会删除整个汇总行,而 drop 语句会删除您不需要的额外的默认汇总列。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-26
    • 1970-01-01
    • 2019-10-07
    • 1970-01-01
    • 2019-09-25
    • 2019-02-24
    • 1970-01-01
    相关资源
    最近更新 更多