首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中的置换与组合

R中的置换与组合
EN

Stack Overflow用户
提问于 2018-06-07 15:23:32
回答 1查看 154关注 0票数 1

我将N=4元素和q=3元素符号为123

我创建了矩阵M,它包含N=4元素的所有向量,其中2元素等于11元素等于21元素在所有可能的位置上等于3,使用interpc如下:

代码语言:javascript
复制
library(iterpc)
I=iterpc(c(2,1,1), labels=c(1,2,3), ordered=TRUE)
M=getall(I)
> M
      [,1] [,2] [,3] [,4]
 [1,]    1    1    2    3
 [2,]    1    1    3    2
 [3,]    1    2    1    3
 [4,]    1    2    3    1
 [5,]    1    3    1    2
 [6,]    1    3    2    1
 [7,]    2    1    1    3
 [8,]    2    1    3    1
 [9,]    2    3    1    1
 [10,]    3    1    1    2
 [11,]    3    1    2    1
 [12,]    3    2    1    1

为了不创建行256101112,我想要一种方法。

这些行与其他行相连。例如,行2可以通过排列行1的元素23来构造。同样,行5可以使用行3构建。

那么,是否有任何方法只构造行134789,而不是构造行256101112

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-07 15:33:40

听起来,你想要对你的2s和3s进行等价的排列。这里有一个解决方案,在初始生成时只使用1s和3s,然后遍历每一行,将前3更改为2:

代码语言:javascript
复制
library(iterpc)
I=iterpc(c(2,2), labels=c(1,3), ordered=TRUE)
M=getall(I)
t(apply(M, 1, function(x) {x[match(3, x)] = 2; x}))
#      [,1] [,2] [,3] [,4]
# [1,]    1    1    2    3
# [2,]    1    2    1    3
# [3,]    1    2    3    1
# [4,]    2    1    1    3
# [5,]    2    1    3    1
# [6,]    2    3    1    1
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50744951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档