使用R中的循环收集P值

时间:2014-01-05 19:32:32

标签: r

跑了一堆回归,现在我正在尝试收集他们的p值并将它们放入向量中。

x=summary(reg2)$coefficients[4,4]   #p value from the first regression, p-val is in row 4, col 4

for (i in 3:1000){

  currentreg=summary(paste("reg",i,sep=""))
  assign(x,c(x,currentreg$coefficients[4,4]))

}

我也尝试了eval(parse(currentreg))eval(parse(summary(paste("reg",i,sep=""))))没有运气。告诉R我总是有这个问题“嘿,不要把它当作一个字符串,把它视为一个变量”,反之亦然。

2 个答案:

答案 0 :(得分:8)

虽然最好将对象存储在列表中并循环显示,但是你需要get

currentreg <- summary(get(paste("reg", i, sep="")))

如果您有对象列表models <- list(reg2, reg3, reg4, ...)。然后,您可以使用sapply遍历此列表以获得所需的结果(循环,将结果收集到矢量中):

x <- sapply(models, function(z) { summary(z)$coeficients[4,4] })

答案 1 :(得分:5)

您可以使用

sapply(mget(ls(pattern = "^reg\\d+$")), function(x) summary(x)$coefficients[4,4])

创建一个包含所有p值的向量。