我有一个奇怪的数据集,希望大家能帮助我。我有一组特定环境污染物水平的数据集,这些数据是通过一组研究参与者以多种方式进行测量以及检测极限的。我需要多种格式的文件,但不幸的是,它们很长,而且命名约定很难翻译。
这是现在的样子:
ID Class Name Weight Amount_lipids Amount_plasma LOD
1 AAA Lead 1.55 44.0 10.0 5.00
1 AAB Mercury 1.55 222.0 100.0 75.00
2 AAA Lead 1.25 25.5 12.0 5.00
我尝试了多种形式的Proc Transpose,但运气不佳,这似乎比指定前缀可以处理的复杂。
我希望它看起来像这样:
ID Weight Lead_lip Lead_plas Lead_LOD Mercury_lip Mercury_plas Mercury_LOD
1 1.55 44.0 10.0 5.0 222.0 100.0 75.0
2 1.25 25.5 12.0 5.0 . . .
我尝试了两步转置过程,但收到以下错误ERROR:ID值“ xxxxxxxxxxxx”在同一BY组中出现两次
by id weight name;
run;
proc transpose data=want_intermediate out=want;
by id weight;
id name _name_;
run;
答案 0 :(得分:0)
您可能有一条具有相同ID和重量的记录,因此已被复制。 您可以为每个ID记录添加一个计数器并使用它。这是一个两倍宽的转置,看起来您的代码已被截断。因此,为每个ID添加一个枚举数:
<audio>
然后修改您的PROC TRANSPOSE以使用ID并在BY语句中计数。