2016-08-24 57 views
1

我甚至不知道如何給這個更好,而不是明顯重複類型,標題,但我認爲這是關於expand.grid的一個不同的問題。r擴展.grid給每個組合 - 不如預期

我有一個變量列表,我需要一個data.frame或每個可能的組合的列表,以進入一些序數迴歸。

名單

> indVars <- as.list(c("T.P","T.M","T.S","E")) 

所需的輸出

> out List of (?) 
: "T.P" 
: "T.M" 
: "T.S" 
: "E" 
: "T.P" "T.M" 
: "T.P" "T.S" 
: "T.P" "E" 
. 
. 
. 
: "T.P" "T.M" "T.S" "E" 

嘗試

  1. expand.grid(indVars)給出了一個單行

    > expand.grid(indVars) Var1 Var2 Var3 Var4 1 T.P T.M T.S E

  2. expand.grid(indVars,indVars)讓16行中的所有兩個可變組合,但不會做3或四個其中indVars[i]==indVars[i](所以你得到像

    > expand.grid(indVars,indVars)[1,] Var1 Var2 1 T.P T.P

  3. 邏輯說expand.grid(indVars,indVars,indVars,indVars)給所有組合(其中256個),但最終你會得到具有相同indVar的多個實例的行。例如:

    > expand.grid(indVars,indVars,indVars,indVars)[241,] Var1 Var2 Var3 Var4 241 T.P T.P E E

請求:有人能指出如何擴大4個變量的這個名單放進去的4 1,2,3每一個組合,並沒有重複?

+1

如果您的最終目標是實際擬合預測變量所有可能組合的模型,請查看'MuMIn :: dredge'。 '挖泥機'似乎對序數迴歸對象感到滿意(參見[「支持的模型列表」](https://cran.r-project.org/web/packages/MuMIn/MuMIn.pdf))。另請參見[廣義線性模型的不同可能的變量組合](http://stackoverflow.com/questions/22664116/different-possible-combinations-of-variables-for-a- generalralized -linear-model)。 – Henrik

回答

3

可能這是一個XY問題,有一個更好的方法來做序數迴歸。

我懷疑訂單沒有關係。使用combn

res <- lapply(seq_along(indVars), combn, x = indVars, simplify = FALSE) 
unlist(res, FALSE) 

# [[1]] 
# [1] "T.P" 
# 
# [[2]] 
# [1] "T.M" 
# 
# [[3]] 
# [1] "T.S" 
# 
# [[4]] 
# [1] "E" 
# 
# [[5]] 
# [1] "T.P" "T.M" 
# 
# [[6]] 
# [1] "T.P" "T.S" 
# 
# [[7]] 
# [1] "T.P" "E" 
# 
# [[8]] 
# [1] "T.M" "T.S" 
# 
# [[9]] 
# [1] "T.M" "E" 
# 
# [[10]] 
# [1] "T.S" "E" 
# 
# [[11]] 
# [1] "T.P" "T.M" "T.S" 
# 
# [[12]] 
# [1] "T.P" "T.M" "E" 
# 
# [[13]] 
# [1] "T.P" "T.S" "E" 
# 
# [[14]] 
# [1] "T.M" "T.S" "E" 
# 
# [[15]] 
# [1] "T.P" "T.M" "T.S" "E"