【问题标题】:Regression loop in R for data framesR中用于数据帧的回归循环
【发布时间】:2015-08-15 12:39:45
【问题描述】:
rm(list=ls())
myData <-read.csv(file="C:/Users/Documents/myfile.csv",header=TRUE, sep=",") 
for(i in names(myData))
{
    colNum <- grep(i,colnames(myData)) ##asigns a value to each column 
    if(is.numeric(myData[3,colNum]))  ##if row 3 is numeric, the entire column is 
   {
        ##print(nxeData[,i])        
        fit <- lm(myData[,i] ~ etch_source_Avg, data=myData) #does a regression for each column in my csv file against my independent variable 'etch'
        rsq <- summary(fit)$r.squared   
   }
}

我正在对多列进行回归循环,并将它们与一个因变量列进行比较。我编写了大部分代码,但现在我不确定如何根据 etch_source_Avg 参数打印出每列的 R 平方值,同时包括该列的名称。理想情况下,它看起来像:

.765 "变量名1"

.436 "变量名2" ...等等

【问题讨论】:

  • 嗨,Jacob:通常我永远不会这样做,但是对于您刚刚删除的关于对可能对您有帮助的数据子集执行回归的问题,我已经写好了答案,我想确保它到达您手中,以防万一它有用。 Here 是我回答的代码。如果您取消删除您的问题,我也很乐意发布它,或者如果您愿意,也可以停止打扰您。
  • @DavidRobinson 谢谢你的帮助!!我不想破坏任何论坛规则,所以我把它删除了。随时将其发布到link,我很乐意将其选为最佳答案。你根本没有打扰我:)

标签: r loops statistics dataframe regression


【解决方案1】:

这里是你的代码的快速重写,它应该给你你正在寻找的东西。没有必要为每一列分配一个值,因为myData 应该是一个 data.frame,因此您可以使用它的列名访问每一列。

rm(list=ls())
myData <-read.csv(file="C:/Users/Documents/myfile.csv",header=TRUE, sep=",") 
for(i in names(myData))
{ 
    if(is.numeric(myData[3,i]))  ##if row 3 is numeric, the entire column is 
    {       
       fit <- lm(myData[,i] ~ etch_source_Avg, data=myData) #does a regression for each column in my csv file against my independent variable 'etch'
       rsq <- summary(fit)$r.squared
       writelines(paste(rsq,i,"\n"))
    }
}

希望这会有所帮助。

【讨论】:

  • 非常感谢!完美。
猜你喜欢
  • 2018-07-07
  • 1970-01-01
  • 1970-01-01
  • 2019-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多