4

我正在尝试创建一个假数据框来检查 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

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

4

1 回答 1

6

您可能正在寻找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
于 2013-04-18T13:37:36.810 回答