I have many "sample" datasets (e.g. sample 5, sample 6, etc), each identified 
by a number as a suffix.  These datasets are saved as individual R objects on 
my hard drive. (e.g."Wind.5.r" . "Wind.6.r","Solar.5.r","Solar.6.r")  For 
example purposes, I have written code that creates similar data files using the 
"airquality" dataset. (see below)

#this creates my sample data files
library(datasets)
getwd() #fyi

for(m in 5:9) {
tempdata=subset(airquality,Month==m)
for (col in 1:4){
tempdata2 = tempdata[col]
tempname=paste(names(airquality)[col],m,sep=".")
assign(tempname,tempdata2,pos=.GlobalEnv ) 
save( list=tempname , file = paste(tempname,".r",sep="" ) )
rm(tempdata2,list=tempname,tempname)
}
rm(tempdata,col,m)
}


 
(While it might be possible to combine all the data into one large R-object, I 
have chosen not to do so.  Due to the large size of my datasets, and the way 
they are organized, I feels it does make sense to keep them as individual 
files.)

I wish to load several variables from each "sample", to perform a regression 
using the "lm" function, and to then save the all the regressions as objects in 
a list.

Here is the code I have written.  Is there a "better/simpler" way to do this? 
(Ideally, I'd like the model I specify to be flexible, and to be able to use 
not only lm, but also rlm, etc.  (I have simplified my code for this example, 
but I think this repasts the essential parts of what I am trying to 
accomplish.) )

#my code to run a regression for each "sample" (i.e."samples" 5,6,7,8,& 9), 
#this saves the regression results in a list called "results"
y='Ozone'
x=c('Wind','Temp')

results=list(NULL)

for (i in 5:9) {
load(file = paste(y,i,"r" ,sep="."), envir = .GlobalEnv)
y1=get(paste(y,i,sep="."))

for (d in 1:length(x)) {
load(file = paste(x[d],i,"r" ,sep="."), envir = .GlobalEnv)
assign(paste("x",d,sep=""),get(paste(x[d],i,sep=".") ))
} #end d loop

reg <- lm(y1[,1]~x1[,1]+x2[,1])
results[i-5] <- list(reg)
names(results)[i-5] <- i
#need to add a line to remove any data files loaded
}

summary(results[[1]])
summary(results[[2]])

lapply(results,summary)


       
---------------------------------


        [[alternative HTML version deleted]]

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to