如何在 SAS 中按 ID 和类型以及附加条件合并多行

问题描述 投票:0回答:1

enter image description here

我想知道,有没有办法在SAS或其他软件中合并如图所示的数据?

我在同一个 ID 下有多个观察结果。我想根据 ID 和类型合并数据。对于预期表中突出显示的新数据,13 来自长度 10+3,54 来自 ID 1 下类型 1 的两个观测值的加权平均值 [(10x3+67x10)/(10+3)]。我数据库中还有其他数据需要像这样清理,所以我想知道是否有代码可以应用来批量将数据集的结构更改为预期的结构。

sql sas
1个回答
0
投票

您可以使用 Proc TABULATE 呈现您的数据。

示例:

data have ;
input id type dose year ;
datalines ;
1 1 10 3
1 4 45 4
1 1 67 10
2 1 47 5
3 4 78 7
3 1 25 4
;

proc summary noprint data=have n sum mean nway ;
  class id type ;
  var year ;
  var dose / weight=year ;
  output out=smy sum(year)=sum_year mean(dose)=wmean_dose ;
run ;

data order ;
  set smy ;
  by id ;
  if first.id the seq=1;else seq+1;
run;

proc tabulate data=order;
  class id seq ;
  var wmean_dose sum_year ;
  table id, seq*(wmean_dose sum_year)*sum=' ' ;
run;

© www.soinside.com 2019 - 2024. All rights reserved.