R中变量的组合

时间:2013-04-18 13:34:40

标签: r variables combinations permutation expand

我正在尝试创建一个虚假的数据框来检查R中多项logit模型的效果。我的代码正是我想要做的,它是创建一个代表不同级别组合的行变量。

var1 <- seq(1,10,1)
var2 <- seq(1,20,5)

FakeData <- as.data.frame(matrix(NA, nrow=length(var1) * length(var2),
                                 ncol=2))

row <- 1
for(i in 1:length(var1)){
  for(j in 1:length(var2)){
    FakeData[row, 1] <- var1[i] 
    FakeData[row, 2] <- var2[j]
    row <- row + 1
  }
}


> head(FakeData)
  V1 V2
1  1  1
2  1  6
3  1 11
4  1 16
5  2  1
6  2  6

我的问题是,当应用于我的问题时,这个代码非常低效,每个变量大约有十个级别。有关可能使其更快的功能的任何提示吗?

1 个答案:

答案 0 :(得分:5)

您可能正在寻找expand.grid

R> expand.grid(var1, var2)
   Var1 Var2
1     1    1
2     2    1
3     3    1
4     4    1
5     5    1
6     6    1
7     7    1
8     8    1
9     9    1
10   10    1
11    1    6
12    2    6
13    3    6
14    4    6
15    5    6
16    6    6
17    7    6
18    8    6
19    9    6
20   10    6