数据如下:
> pat
AC139 AT163
1 329 138
2 333 138/140
3 329/333 140
4 329 138/140
5 329/333 140
6 329 138/140
想要实现对pat$AC139列的3、5行赋排列组合式的值(329和329;329和333;333和329;333和333)
同时对pat$AT163列的2、4、6行赋排列组合式的值(138和138和138;138和138和140;138和140和138;138和140和140;
140和138和138;140和138和140;140和140和138;140和140和140)
执行如下命令:
> ac139<-permutations(x=c(329,333),k=2,replace=T)
> at163<-permutations(x=c(138,140),k=3,replace=T)
> for(i in 1:length(ac139[,1])){
+ for(j in 1:length(at163[,1])){
+ pat[which(pat[,1]=='329/333'),1]=ac139[i,]
+ pat[which(pat[,2]=='138/140'),2]=at163[j,]
+ print(pat)
+ }
+ }
返回结果倒是print了32个数组,但是全部都一样,如下:
AC139 AT163
1 329 138
2 333 138
3 329 140
4 329 138
5 329 140
6 329 138
AC139 AT163
1 329 138
2 333 138
3 329 140
4 329 138
5 329 140
6 329 138
i 和 j 根本就没循环取值,一直都只取了i=1和j=1时的值!
求教高手是怎么回事啊?