我的数据集是:
Dim ar
ar = Sheet1.Evaluate("A1:C3 + E1:G3 + I1:K3")
我需要这样做:
|ID | SNP | GEN |
|:--:|:---:|:---:|
|1 | A | AG |
|2 | A | GG |
|3 | A | AG |
|4 | A | AG |
我尝试使用以下命令,但它不起作用:
|SNP | ID1 | ID2 | ID3 | ID4 |
|:---|:---:|:---:|:---:|:---:|
|A | AG | GG | AG | AG |
有人知道如何使用SAS进行此操作吗?
答案 0 :(得分:1)
您只需要为PROC TRANPOSE调用添加更多选项,即可让它按照您的意愿行事。
proc transpose data=data1 out=WANT prefix=ID ;
by SNP;
id ID;
var GEN;
run;
BY语句将处理SNP的每个值作为单独的转置集。如果值比示例中的值多,请确保按SNP对数据进行排序。 ID语句告诉它用于生成新变量名的变量。 VAR语句告诉它要转置哪个变量,要转置字符变量,必须使用VAR语句。 PREFIX =选项允许您指定要用作生成的变量名称的前缀的字符。