我想要生成一個列表,其中包含編號爲1:N的所有2^n個子集中的R. 如何可能?如何獲得所有子集高達N在R
expand.grid(rep(list(0:4), 2))
返回包含0的所有子集的數據幀:4大小2 - ,但我想的列表,它包含了所有尺寸的所有子集。
我想要生成一個列表,其中包含編號爲1:N的所有2^n個子集中的R. 如何可能?如何獲得所有子集高達N在R
expand.grid(rep(list(0:4), 2))
返回包含0的所有子集的數據幀:4大小2 - ,但我想的列表,它包含了所有尺寸的所有子集。
怎麼樣,
lapply(0:4, function(x) combn(4,x))
[[1]]
[,1]
[[2]]
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[[3]]
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 1 1 2 2 3
[2,] 2 3 4 3 4 4
[[4]]
[,1] [,2] [,3] [,4]
[1,] 1 1 1 2
[2,] 2 2 3 3
[3,] 3 4 4 4
[[5]]
[,1]
[1,] 1
[2,] 2
[3,] 3
[4,] 4
軟件包集中有一個set_power
函數,它應該返回您的文字所描述的合適詞的權力集合。不過,你可能想修改你的術語,因爲你的代碼做了一些不同的事情。 expand.grid
不返回數學集,而是有序組合。在集合論中{1,1}簡化爲{1}。在這種意義上,展開網格不會創建實際集合。如果你想所有的data.frames的最大長度是4是expand.grid可以使列表中,你可以得到很輕鬆地用:
lapply(0:4, function(n) expand.grid(rep(list(0:4), n)))
我結合這與對'magrittr'ers)'unlist(,recursive = FALSE)'('%>%unlist(recursive = FALSE)')將所有這些變成一個含有2^4個元素的列表,每個元素對應一個子集 – MichaelChirico