全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1058 4
2021-04-06
数据如下:
> 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时的值!
求教高手是怎么回事啊?

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2021-4-6 14:28:24
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-4-8 21:51:21
谢谢乐天12300的解答。但用expand.grid命令代替permutations命令,结果仍然是一样的!
我感觉是循环命令有误,返回的始终是 i 和 j 取值 1 时对应的ac139和at163的行,没有继续给 i  赋值2、3、4 及 j 赋值2、3、4 ......
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-4-8 21:53:09
还请高手指点迷津
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群