SAS如何对重复记录中的变量求和
Posted
技术标签:
【中文标题】SAS如何对重复记录中的变量求和【英文标题】:SAS How to sum a variable in duplicate records 【发布时间】:2020-10-25 03:25:28 【问题描述】:这里是 Noob SAS 用户。 我有一个带有 PatientID 的医院数据集和一个计算入院和出院天数的变量。
那些多次入院的患者会出现相同的患者 ID,并记录他们每次住院的天数。
我想总结每位患者的住院总天数,然后只有一个患者 ID 记录包含所有住院天数的总和。有谁知道我会怎么做?
【问题讨论】:
您是否尝试过Proc MEANS
使用类或 ID ?或 Proc SQL
按 ID 分组?如果您在编写代码时遇到问题,请添加一些示例数据和您编写的代码。
请提供可直接重现的样本数据并说明您遇到的问题。
【参考方案1】:
你想select distinct
sum
days_in_hospital
和group 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 语句会删除您不需要的额外的默认汇总列。)
【讨论】:
以上是关于SAS如何对重复记录中的变量求和的主要内容,如果未能解决你的问题,请参考以下文章