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
Perhaps combn in conjunction with lapply might be helpful:
x <- 1:4
lapply(seq_along(x), function(y) combn(x, y))
# [[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
As @Roland points out, there is also a simplify argument to combn that when set to FALSE would create a nested list of individual column vectors rather than a matrix of all the results. For example, instead of list item [[3]] above being presented as a matrix, if you used lapply(seq_along(x), function(y) combn(x, y)), for the combinations of length 3 you would get:
# [[3]]
# [[3]][[1]]
# [1] 1 2 3
#
# [[3]][[2]]
# [1] 1 2 4
#
# [[3]][[3]]
# [1] 1 3 4
#
# [[3]][[4]]
# [1] 2 3 4