【发布时间】:2018-11-13 22:49:14
【问题描述】:
我有 7 个向量:
vector1 = c(9,8,7,6,5)
vector2 = c(10,20,30)
vector3=c(19,27,34,40,45)
vector4=c(29,37,44)
vector5=c(39,47)
vector6=c(28,36)
vector7=c(13,42)
vector=c(vector1,vector2,vector3,vector4,vector5,vector6,vector7)
co = expand.grid(vector,vector,vector,vector,vector,vector)
我需要一个上述向量的 6 变量组合表,但每个向量中的值在该表的每一行中不应重复超过 2 次,并且每一行中不应出现相同的数字。例如:
V1 V1 V2 V3 V4 V7
V1 V3 V4 V5 V6 V7
我该怎么做?
V1 = c (9,8,7,6,5)
V2 = c (10,20,30)
V3 = c (19,27,34,40,45)
V4 = c (29,37,44)
V5 = c (39.47)
V6 = c (28.36)
V7 = c (13,25,42)
我有 7 个向量组。我想将它们与 6 个变量结合起来列出。这 7 个组中的每一行的成员不得超过 2 人。
作为第二个条件,
x1 = 1: 9
x2 = 10:19
x3 = 20:29
x4 = 30: 39
x5 = 40:49
我有如上所示的组。组合列表中每一行的 x1、x2、x3、x4 或 x5 组范围内的成员不应超过 3 个。
例如:在 2 3 5 7 19 25 的组合中,x1 成员的数量不应在组合列表中,因为它们超过 3。
【问题讨论】:
-
您需要符合这些要求的所有组合吗?或者只是一种从中取样的方法? (顺序并不重要,对吧?)
-
试试
combn(paste0("V", c(1:7, 1:7)), m = 6)。或者unique(lapply(combn(paste0("V", c(1:7, 1:7)), m = 6, simplify = FALSE), sort)) -
我不太清楚你所说的 是什么意思,并且每一行中不应该出现相同的数字”,但我上面的评论似乎是你想要的?
-
谢谢格雷戈尔。它有效,但我还有更多问题要解决。
-
@Tim ,您能否用一个较小的示例编辑您的问题,并在您尝试过的内容中包含所需的输出。就目前而言,与您的 cmets 一起,尚不清楚您在问什么。
标签: r matrix conditional combinations