SAS PROC 转置数据 [英] SAS PROC Transpose Data

查看:45
本文介绍了SAS PROC 转置数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在 SAS 中,我有一个类似于下面的数据集.

In SAS, I have a data set similar to the one below.

ID   TRACT    meanFA    sdFA      medianFA
1    t01      0.56      0.14      0.56
1    t02      0.53      0.07      0.52
1    t03      0.71      0.08      0.71
2    t01      0.72      0.09      0.72
2    t02      0.83      0.10      0.86
2    t03      0.59      0.10      0.62

我不确定转置是否是正确的概念......但我希望数据看起来像下面的那样.

I am not sure if transpose is the right concept here... but I would want the data to look like the one below.

ID   t01_meanFA  t01_sdFA  t01_medianFA  t02_meanFA  t02_sdFA  t02_medianFA  t03_meanFA  t03_sdFA  t03_medianFA
1    0.56        0.14      0.56          0.53        0.07      0.52          0.71        0.08      0.71
2    0.72        0.09      0.72          0.83        0.10      0.86          0.59        0.10      0.62


proc transpose data=TRACT out=newTRACT;
   var meanFA sdFA medianFA;
   by id;
   id tract meanFA sdFA medianFA;
run;

我一直在玩上面的 SAS 代码,但没有成功.任何想法或建议都会很棒!

I have been playing around with the SAS code above, but with no success. Any ideas or suggestions would be great!

推荐答案

您需要 2 个转置.转置,使用一个数据步骤更新然后_NAME_变量,然后再次转置;

You need 2 transposes. Transpose, use a data step to update then _NAME_ variable, and then transpose again;

proc transpose data=tract out=tract2;
by id tract;
run;

data tract2;
format _name_ $32.;
set tract2;
_name_ = strip(tract) || "_" || strip(_name_);
run;

proc transpose data=tract2 out=tract3(drop=_name_);
by id;
/*With no ID statement, the _NAME_ variable is used*/
var col1;
run;

这篇关于SAS PROC 转置数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆