如何修改SNP值?

时间:2016-06-22 06:28:38

标签: sas genetics

我的数据集有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中 - 我想修改值AA = 2,AG = 1,GG = 0,同样在SNP1和SNP2中

我该怎么做?

1 个答案:

答案 0 :(得分:0)

我会将新值放在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;