| 
 | 
楼主
 
 
 楼主 |
发表于 2012-7-4 10:28:55
|
只看该作者
 
 
 
求助!随机形成组合的问题
有如下数据结构的data: 
ID S   X1 X2 X3 X4 
1   1   0   1    1   0 
2   0   1   1     0   0 
3   1    1   0    0   1 
4   0    0   1   1   0 
。。。。。。。。。 
200  1  0   1   0    1 
需要从这个数据集中按照s中1和0,随机挑选配对,比如随机选取2和3;选出50个这样的配对, 
接着,对于任意选取的ID为2的个体,随机从X1,X2中选一个,比如选到了X1, 随机从X3,X4中选一个,比如选到了X4, 
这样ID为3的个体也同样的方法选出X;然后将选出的组合按照选出的x,结合在一起输出。 
大家看看下面的语句改一下能否解决其中的一些问题: 
proc iml; 
use xx; 
read all into x; 
b=ncol(x); 
a=nrow(x); 
A=J(b,a,'.'); 
  do i=1 to 50; 
     obs=round(50*ranuni(0)); 
     if obs=id then do;   
    do j=1 to 25; 
      if sex='1' then k=id;  
  else if sex='0' then l=id; 
   bb=A[k,l]; 
    end; 
   end; 
   end; 
create bb from bb; 
append from bb; 
run;quit; |   
 
 
 
 |