x <- c(4, 4, 4, 3, 3, 3, 3, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 4, 4, 4,
3, 3, 3, 3, 3, 4, 5, 5, 5, 5, 5, 4, 6)
u <- sort(unique(x))
unlist(lapply(seq_along(u)[-1], \(m) combn(u, m, paste, collapse = "-")))
#> [1] "3-4" "3-5" "3-6" "4-5" "4-6" "5-6" "3-4-5" "3-4-6" "3-5-6" "4-5-6" "3-4-5-6"
如评论中所述,如果速度是一个问题,
RcppAlgos::comboGeneral
比
combn
和
Rfast::sort_unique(x)
比
sort(unique(x))
。