[R] Extracting an object name?
David Winsemius
dwinsemius at comcast.net
Sat Apr 25 05:09:14 CEST 2009
On Apr 24, 2009, at 9:30 PM, greggallen at gmail.com wrote:
> Dear Sir or Madam:
>
> This is an extension to a earlier post, about looping through several
> thousand files, and testing student's models against a different
> data-set, called rclnow, for "recall now".
>
> The problem is, that the instructor never specified to the students,
> what they should name their "lm" object.
>
> So what they created was:
> "arbitrary variable name" <- lm(Y~(V1+V2+.... more stuff),
> learn_data_frame)
That would have created an object, but would not have determined what
it would be called on the disk when it was saved.
>
>
> Now there are 1500+ files that are named:
> "BIOtotals_students_name_class_name_date_other_info..."
> "BIOtotals_more_stuff_2.."
> "BIOtotal_more-stuff_3
> ......................
> ......................
Right, but you do not know what the names of the models will be when
they are loaded.
>
>
>
> Now I always get this error in the "predict" statement:
>
> Error in UseMethod("predict") : no applicable method for "predict"
Perhaps because you have not named the object properly?
>
>
> Is there a way to pass the unknown object name to predict, or do we
> need to ask the students to redo all the work with a given model name?
> (I hope not!)
Can set up the workspace so that you assign the only lm object to a
standardized name and then operate on that name?
>
> function(L) ### what is L?
> {
> fname <- format(Sys.time(), 'Totals_%b%d_%H%M_%S.txt')
> filesused <- format(Sys.time(), 'Files_%b%d_%H%M_%S.txt')
> setwd("/Users/gregg/R_system")
> dire <- getwd()
> print(dire)
> flies <- list.files(pattern = "BIOtotal*")# flies instead of files
> because of FEAR of reserved words!!!
> for(i in 1:length(flies))
> {
> s <- flies[i]
> print(i) # print everything for debugging
> print(s)
> model <- load(s)
Probably need to lapply(flies, load) and let them be named whatever
they are named
>
> print(model)
Probably now need to look at the workspace with ls(...) and somehow
get the names of all the objects of class lm.
Then lapply a predict function tomembers of that list
>
> z <- predict( model ,rclnow) ############## what will model
> be????? #see above
How will you know whose model is which, ... do do you care?
>
> print(z)
> write( z, fname , append = TRUE, ncolumns = L)
> write( as.character(s) , filesused , append = TRUE, ncolumns = 1 )
> }
> }
>
David Winsemius, MD
Heritage Laboratories
West Hartford, CT
More information about the R-help
mailing list