2017-10-09 137 views
-1

我試圖創建R值的連續排列,但不能將其創建爲每個我的需要。這是預期的連續排列組合中的R

ID   Val Perm 1 Perm 2 Perm3 Perm 4 Perm 5 Perm 6 Perm 7 Perm 8 Perm 9 Perm 10 Perm 11 Perm 12 Perm 13 Perm 14 Perm 15 Perm 16 Perm 17 Perm 18 Perm 19 Perm 20 Perm 21 Perm 22 Perm 23 Perm 24 Perm 25 Perm 26 Perm 27 Perm 28 Perm 29 Perm 30 Perm 31 Perm 32 Perm 33 Perm 34 Perm 35 Perm 36 
12,000  1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 
12,581  2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 
12,857  2 Range 3 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 
13,387  5 Range 3 Range 3 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 3 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 
15,846  2 Range 3 Range 3 Range 3 Range 2 Range 2 Range 2 Range 2 Range 2 Range 3 Range 3 Range 2 Range 2 Range 2 Range 2 Range 2 Range 3 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 
23,387  5 Range 3 Range 3 Range 3 Range 3 Range 2 Range 2 Range 2 Range 2 Range 3 Range 3 Range 3 Range 2 Range 2 Range 2 Range 2 Range 3 Range 3 Range 2 Range 2 Range 2 Range 2 Range 3 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 1 Range 1 Range 1 Range 1 Range 1 Range 1 
25,424  4 Range 3 Range 3 Range 3 Range 3 Range 3 Range 2 Range 2 Range 2 Range 3 Range 3 Range 3 Range 3 Range 2 Range 2 Range 2 Range 3 Range 3 Range 3 Range 2 Range 2 Range 2 Range 3 Range 3 Range 2 Range 2 Range 2 Range 3 Range 2 Range 2 Range 2 Range 2 Range 2 Range 2 Range 1 Range 1 Range 1 
25,424  2 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 2 Range 2 Range 3 Range 3 Range 3 Range 3 Range 3 Range 2 Range 2 Range 3 Range 3 Range 3 Range 3 Range 2 Range 2 Range 3 Range 3 Range 3 Range 2 Range 2 Range 3 Range 3 Range 2 Range 2 Range 3 Range 2 Range 2 Range 2 Range 2 Range 1 
25,932  6 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 2 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 2 Range 3 Range 3 Range 3 Range 3 Range 3 Range 2 Range 3 Range 3 Range 3 Range 3 Range 2 Range 3 Range 3 Range 3 Range 2 Range 3 Range 3 Range 2 Range 3 Range 2 Range 2 
25,932  1 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 Range 3 

而是我m到處其他值等

apply(combinations(n=3,r=5,v = c("Range 1","Range 2","Range 3"),repeats.allowed = T),2,sort) 
     [,1]  [,2]  [,3]  [,4]  [,5]  
[1,] "Range 1" "Range 1" "Range 1" "Range 1" "Range 1" 
[2,] "Range 1" "Range 1" "Range 1" "Range 1" "Range 2" 
[3,] "Range 1" "Range 1" "Range 1" "Range 1" "Range 2" 
[4,] "Range 1" "Range 1" "Range 1" "Range 2" "Range 2" 
[5,] "Range 1" "Range 1" "Range 1" "Range 2" "Range 2" 
[6,] "Range 1" "Range 1" "Range 1" "Range 2" "Range 2" 
[7,] "Range 1" "Range 1" "Range 2" "Range 2" "Range 3" 
[8,] "Range 1" "Range 1" "Range 2" "Range 2" "Range 3" 
[9,] "Range 1" "Range 1" "Range 2" "Range 2" "Range 3" 
[10,] "Range 1" "Range 1" "Range 2" "Range 2" "Range 3" 
[11,] "Range 1" "Range 2" "Range 2" "Range 2" "Range 3" 
[12,] "Range 1" "Range 2" "Range 2" "Range 3" "Range 3" 
[13,] "Range 1" "Range 2" "Range 2" "Range 3" "Range 3" 
[14,] "Range 1" "Range 2" "Range 2" "Range 3" "Range 3" 
[15,] "Range 1" "Range 2" "Range 2" "Range 3" "Range 3" 
[16,] "Range 2" "Range 2" "Range 3" "Range 3" "Range 3" 
[17,] "Range 2" "Range 2" "Range 3" "Range 3" "Range 3" 
[18,] "Range 2" "Range 2" "Range 3" "Range 3" "Range 3" 
[19,] "Range 2" "Range 3" "Range 3" "Range 3" "Range 3" 
[20,] "Range 2" "Range 3" "Range 3" "Range 3" "Range 3" 
[21,] "Range 3" "Range 3" "Range 3" "Range 3" "Range 3" 

邏輯用於製備置換列將是排列第一列(「彼爾姆1」)像保持「範圍1「常數,」範圍2「和」範圍3「變化,」範圍2「一直在增加,」範圍3「在減少,直到」Perm 8「列和」Perm 9「列出現」範圍1「值加1,「範圍2」和「範圍3」改變,「範圍2」一直在增加,「範圍3」減小直到列「燙髮15」,從「燙髮16」列再次出現「範圍1」增加等2。

它可以使用其他功能來完成? 在此先感謝。

Domnick。

+0

你試過了'expand.grid'函數嗎? 'v < - c(「Range 1」,「Range 2」,「Range 3」); expand.grid(rep(list(v),5))' –

+0

這給了我相同數量的值(「範圍1」 ,「範圍2」,「範圍3」)每個5列 – Domnick

回答

0

您的圖案不典型。從我可以告訴你的模式,你可以嘗試這個自定義功能

library(purrr) 
library(dplyr) 
myfun <- function(n) { 
     require(purrr) 
     require(dplyr) 
     S <- "Range" 
     df <- Reduce("data.frame", lapply(1:(n-2), function(x) data.frame(c(paste0(S, 1), rep(paste0(S, 2), x), rep(paste0(S, 3), n-x-1))))) %>% 
       setNames(paste0("Perm", 1:(n-2))) 
     return(df) 
    } 

df <- myfun(6) 
    # Perm1 Perm2 Perm3 Perm4 
# 1 Range1 Range1 Range1 Range1 
# 2 Range2 Range2 Range2 Range2 
# 3 Range3 Range2 Range2 Range2 
# 4 Range3 Range3 Range2 Range2 
# 5 Range3 Range3 Range3 Range2 
# 6 Range3 Range3 Range3 Range3 
+0

已更新預期表。 – Domnick