R 中数据帧的回归循环
Regression loop in R for data frames
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
}
}
I'm working on doing a regression loop for multiple columns and comparing them against one dependent variable column. I have the majority of the code written, but now I am unsure how to print out my R squared value for each column against the etch_source_Avg parameter while including the name of that column. Ideally it would something look like:
.765 "variable name 1"
.436 "variable name 2" ...and so on
这里是对您的代码的快速重写,这应该可以满足您的需求。为每一列分配一个值是不必要的,因为 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"))
}
}
希望对您有所帮助。
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
}
}
I'm working on doing a regression loop for multiple columns and comparing them against one dependent variable column. I have the majority of the code written, but now I am unsure how to print out my R squared value for each column against the etch_source_Avg parameter while including the name of that column. Ideally it would something look like:
.765 "variable name 1"
.436 "variable name 2" ...and so on
这里是对您的代码的快速重写,这应该可以满足您的需求。为每一列分配一个值是不必要的,因为 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"))
}
}
希望对您有所帮助。