我有一個元素列表{1,2,3,4,5},我想查找每個元素的所有組合,即{1,2,3,4,5, 12,13,14,15,23,24,25,34,35等等} in R 這是否有任何內置功能?查找每個元素的組合
-2
A
回答
0
你可以試試這個:
g1 <- expand.grid(0:5,1:5) #create a data.frame with all combinations
v <- as.numeric(paste0(g1[,1], g1[,2])) #convert combinations into numbers
v <- sort(v[(v%%11)!=0]) #sort and remove duplicate figures, like 44 or 55
v
#[1] 1 2 3 4 5 12 13 14 15 21 23 24 25 31 32 34 35 41 42 43 45 51 52 53 54
相同的代碼可以寫在一個稍微更緊湊的方式:
v <- sort(as.numeric(apply(expand.grid(0:5,1:5), 1, paste, collapse="")))
v <- v[!!v%%11]
如果性能問題,這種較短的版本很可能會慢一些,因爲它在第一個版本完全向量化時使用與apply()
的循環。
0
這是你在找什麼?
unlist(lapply(1:2, function(m) apply(combn(1:5, m), 2, function(x) as.numeric(paste0(as.character(x), collapse="")))))
[1] 1 2 3 4 5 12 13 14 15 23 24 25 34 35 45
1:2
是要素數的選擇範圍(也m
在?combn
),和1:5
組合的載體源(combn
x
)。
這裏是做它的功能:
range_combn <- function(x, m){
unlist(lapply(m, function(m) apply(combn(x, m), 2,
function(x) as.numeric(paste0(as.character(x), collapse="")))))
}
如:
range_combn(1:5, 1:3)
[1] 1 2 3 4 5 12 13 14 15 23 24 25 34 35 45 123 124 125 134 135 145 234 235 245 345
range_combn(1:5, 1:2)
[1] 1 2 3 4 5 12 13 14 15 23 24 25 34 35 45
相關問題
- 1. 查找表中每個元素的組合(Lua/PseudoCode)
- 2. 如何找到每每個元素都是唯一的組合,多維數組
- 3. 查找n個k個元素的所有組合
- 4. 查找Scala數組中每個不同元素的計數?
- 5. 查找每個數組元素,左邊較小的元素。 O(n)
- 6. 元素的所有組合與每個組中的一個元素
- 7. 查找元素的最常見的組合在多個陣列
- 8. 查找數組中每個元素的出現次數並更新與每個元素相關的信息
- 9. MongoDB:按數組元素查找元素
- 10. 查找一組元素
- 11. 查找數組中元素的所有組合
- 12. 循環查找xpath元素,然後單擊找到的每個元素
- 13. 在大小爲N的數組的每k個元素中查找最小元素和第二小元素
- 14. 爲元素數組中的每個元素賦值每個元素jQuery
- 15. 查找每個循環的最後一個元素,無論元素類型的
- 16. 查找數組值的每個可能的排列組合
- 17. ArangoDB - 如何通過數組元素的子串查找元素的集合?
- 18. 找到六個數組元素的所有可能組合
- 19. jQuery爲它找到的每個元素返回兩個元素?
- 20. 組合多個CSS元素
- 21. 組合兩個CSS元素
- 22. 查找下一個和每個字典項先前的元素
- 23. 修改集合的每個元素
- 24. r個組中元素的組合數
- 25. 列表列表:查找元素的組合
- 26. 查找Prolog列表元素的組合/子列表
- 27. MongoDB查詢找出集合中的所有數組元素
- 28. 查找組合對之間共享元素的最佳方式
- 29. 集合元素的組合
- 30. 找到2 ^元素的n -2個組合在一個列表
你正在尋找 功能是'combn()' –