使用paste()的输出作为对象,在R中的for循环中

时间:2012-07-30 14:27:18

标签: r for-loop model build-automation paste

我想构建48个GLM的结果矩阵(包括模型系数,R2等)。我通过使用for循环来调用模型对象,该循环使用paste()mget()函数迭代地调用它们,这些函数创建一个与模型对象同名的变量。想象一下这些是模型对象:

var1_ds1_1<-glm(var1~var_ds1)
var1_ds2_1<-glm(var1~var_ds2)
var1_ds3_1<-glm(var1~var_ds3)

当我使用paste()mget()创建一个名称来调用对象来自动创建一个与模型对象名称相同的对象名称时,我的问题出现了(在这个简单的示例中mget(paste ("var1",table.row))应该结果为var1_ds1_1,但我无法提取模型系数或任何其他参数。

for (tab.row in 1:48) {
     result.matrix[tab.row,]<-mget(paste ("var1_ds",table.row,"_1"))$coef[1] # An example to extract the linear coefficient
}

我的问题是:如何自动生成模型对象的名称以将其参数存储到新的结果矩阵中?

新矩阵应为:

Row Variable Dataset Slope P-Value R2
 1  Var 1    1       1.3   0.001   50%
 2  Var 1    2       0.8   0.004   32%   
 .    .      .        .      .      .
48  Var n    n        .      .      .

提前致谢。

0 个答案:

没有答案