我的数据集有3个SNP,如下所示
Id SNP1 SNP 2 SNP3
1 AA AA AA
2 AG AC AG
3 GG CC GG
4
5
6 So on 在SNP1 -I中,我想修改值AA =2、AG =1、GG =0以及SNP1和SNP2中的值
我该怎么做呢?
发布于 2016-06-22 17:04:38
我将把新值放在一个proc format中,这样您就可以保留现有的值,但使用格式化的值显示,或者使用格式转换现有的值。这两种方法都可以做到这一点。
/* create format */
proc format;
value $snpfmt 'AA' = '2'
'AG' = '1'
'GG' = '0'
;
run;
/* create initial dataset */
data have;
input Id SNP1 $ SNP2 $ SNP3 $;
datalines;
1 AA AA AA
2 AG AC AG
3 GG CC GG
;
/* option1 - format the values */
proc datasets lib=work nodetails nolist;
modify have;
format snp1 snp2 snp3 $snpfmt2. ;
quit;
/* option2 - change the values using the format */
data want;
set have;
snp1 = put(snp1,$snpfmt2.);
snp2 = put(snp2,$snpfmt2.);
snp3 = put(snp3,$snpfmt2.);
run;https://stackoverflow.com/questions/37960187
复制相似问题