在 SAS 中,我将列变量按顺序排列,相应的列变量并排堆叠,如下所示:
id lab1 lab2 lab3 dt1 dt2 dt3 bili1 bili2 bili3 alb1 alb2 alb3
3 dx sx sx 2/04 2/06 3/08 x.x x.x x.x x.x x.x x.x
4 dx tx tx 5/05 3/06 9/06 x.x x.x x.x x.x x.x x.x
我想转换为以下长格式:
id lab dt bili alb
3 dx 2/04 x.x x.x
3 sx 2/06 x.x x.x
3 sx 3/08 x.x x.x
4 dx 5/05 x.x x.x
4 tx 3/06 x.x x.x
4 tx 9/06 x.x x.x
但我似乎无法正确地操纵这个,把
var lab1-lab3 dt1-dt3 bili1-bili3 alb1-alb3;
实际上这和之间没有区别
var lab1-alb3
所以每一列都是独立处理的,但我想对这些进行聚类,以便 SAS 知道它们在长数据集中有单独的列。一些论坛建议我只执行几次转置并合并输出数据。这看起来不优雅、效率低下、难以阅读和乏味......比 SAS 本身更是如此。是否没有语法可以在单个数据或 proc 步骤中执行此操作?