我有如下數據。我想獲得2個和5個元素的所有子集(元素的順序不重要)。R組合子集
在下面的情況下,由於有8個元素 - 總共28個2個元素的組合和56個5個元素的組合是可能的。我怎樣才能得到每個子集中的元素列表?
element_list =c(0,1,3,4,2,2,7,4)
我有如下數據。我想獲得2個和5個元素的所有子集(元素的順序不重要)。R組合子集
在下面的情況下,由於有8個元素 - 總共28個2個元素的組合和56個5個元素的組合是可能的。我怎樣才能得到每個子集中的元素列表?
element_list =c(0,1,3,4,2,2,7,4)
你想用combn
,遍歷m
值這是我們選擇在2到5
combos <- lapply(c(2, 5), combn, x = element_list, simplify = FALSE)
lengths(combos)
# [1] 28 56
或掉落simplify
參數返回矩陣列表。
我試着'com = as.data.frame(combos [[2]])'來保存5個元素的組合。但是每個組合都保存爲一列。任何簡單的方法來保存連續的每個組合? – user2543622
也許像'do.call(rbind,lapply(combs [[2]],function(x)setNames(as.data.frame.list(x),1:5)))''如果你正在使用' combos'。否則只是'as.data.frame(t(combos [[2]]))' –
其實它只是'as.data.frame(do.call(rbind,combos [[2]]))'如果你使用'簡化= FALSE' –
你有沒有試過?另外:我不確定我是否理解正確,但它可能有助於搜索*「排列」*。 – maj