All combinations of all sizes?

前端 未结 2 1175
北海茫月
北海茫月 2020-12-19 23:14

There are thousands of results on SO when I search for \"vector combinations in R\" but I can\'t find the answer to my question. Apologies if it is a duplicate:

I ha

2条回答
  •  温柔的废话
    2020-12-20 00:05

    If you prefer compact code

    Map(combn, list(x), seq_along(x))
    ## [[1]]
    ##      [,1] [,2] [,3] [,4]
    ## [1,]    1    2    3    4
    
    ## [[2]]
    ##      [,1] [,2] [,3] [,4] [,5] [,6]
    ## [1,]    1    1    1    2    2    3
    ## [2,]    2    3    4    3    4    4
    
    ## [[3]]
    ##      [,1] [,2] [,3] [,4]
    ## [1,]    1    1    1    2
    ## [2,]    2    2    3    3
    ## [3,]    3    4    4    4
    
    ## [[4]]
    ##      [,1]
    ## [1,]    1
    ## [2,]    2
    ## [3,]    3
    ## [4,]    4
    

    To avoid repetition, you'll have to deal with nested list but you can simplify the result using unlist

    res <- Map(combn, list(x), seq_along(x), simplify = FALSE)
    unlist(res, recursive = FALSE)
    ## [[1]]
    ## [1] 1
    
    ## [[2]]
    ## [1] 2
    
    ## [[3]]
    ## [1] 3
    
    ## [[4]]
    ## [1] 4
    
    ## [[5]]
    ## [1] 1 2
    
    ## [[6]]
    ## [1] 1 3
    
    ## [[7]]
    ## [1] 1 4
    
    ## [[8]]
    ## [1] 2 3
    
    ## [[9]]
    ## [1] 2 4
    
    ## [[10]]
    ## [1] 3 4
    
    ## [[11]]
    ## [1] 1 2 3
    
    ## [[12]]
    ## [1] 1 2 4
    
    ## [[13]]
    ## [1] 1 3 4
    
    ## [[14]]
    ## [1] 2 3 4
    
    ## [[15]]
    ## [1] 1 2 3 4
    

提交回复
热议问题