Cho một vectơ các phần tử, tôi muốn có được một danh sách tất cả các kết hợp có thể có của n
-chiều dài của tập con của các phần tử. Ví dụ, đưa ra (đơn giản nhất) chuỗi 1:2
, tôi muốn để có được một đối tượng danh sách các hình thứcTất cả N kết hợp của tất cả các tập hợp con
{ {{1},{1}}, {{1},{2}}, {{2},{2}}, {{1},{1,2}}, {{2},{1,2}}, {{1,2},{1,2}} }
khi n=2
.
tôi đã có thể tạo ra một danh sách tất cả các tập con không rỗng bằng cách sử dụng sau đây:
listOfAllSubsets <- function (s) {
n <- length(s)
unlist(lapply(1:n, function (n) {
combn(s, n, simplify=FALSE)
}), recursive=FALSE)
}
Tuy nhiên, tôi không chắc chắn cách tốt nhất để tiến hành từ đây. Về cơ bản, tôi muốn có một sản phẩm Descartes của danh sách này với chính nó (cho n=2
).
Mọi đề xuất? Một giải pháp không lặp lại sẽ thích hợp hơn (tức là, không có các vòng for
).
'expand.grid' là một cách để nhận được sản phẩm Descartes. Có vẻ như bạn đang rời khỏi tập hợp con trống, nhân tiện. – Frank
Kết quả ví dụ cũng có '({1}, {1})' nhưng thiếu '({2}, {2})'. –