小编Rah*_*ora的帖子

生成连续出现的向量的所有组合被视为单次出现

我想生成具有向量元素的所有可能组合的向量,其中元素的连续多次出现被视为该元素的单次出现。

简单案例

对于 n = 2,

original <- c("a","a","a","b","b","b")
      v1 <- c("b","b","b","a","a","a")
Run Code Online (Sandbox Code Playgroud)

因此,所有唯一出现的 a 都会与 b 交换。

对于 n = 3,我们得到

original<-c("a","a","a","b","b","b","c","c","c")
    ver1<-c("a","a","a","c","c","c","b","b","b")
    ver2<-c("b","b","b","a","a","a","c","c","c")
    ver3<-c("b","b","b","c","c","c","a","a","a")
    ver4<-c("c","c","c","b","b","b","a","a","a")
    ver5<-c("c","c","c","a","a","a","b","b","b")
Run Code Online (Sandbox Code Playgroud)

因此,所有唯一出现的a交换与bc,所有唯一出现的b交换与acAND 所有唯一出现的c交换与ba

案例最多为 n = 10。(我相信不同组合的可能向量为 10!)

此外,可以有多个 a、b、c 块......

复杂情况

对于 n = 2;

original<-c("a","a","a","b","b","b","a","a","b","b")
    ver1<-c("b","b","b","a","a","a","b","b","a","a")
Run Code Online (Sandbox Code Playgroud)

但如果我们正确地交换元素,复杂情况和简单情况应该不重要。

我正在尝试:(n=2)

original<-c("a","a","a","b","b","b","a","a","b","b")
ver1<-replace(original,which(original=='a'),'b')
ver1<-replace(ver1,which(original=='b'),'a')
gives ver1<-c("b","b","b","a","a","a","b","b","a","a")
Run Code Online (Sandbox Code Playgroud)

但不确定如何自动化此操作。

combinations r vector

9
推荐指数
4
解决办法
448
查看次数

标签 统计

combinations ×1

r ×1

vector ×1