[R] save() and load(): *prefer* saveRDS() and readRDS()
AbouEl-Makarim Aboueissa
@boue|m@k@r|m1962 @end|ng |rom gm@||@com
Tue Sep 26 14:00:12 CEST 2023
Hi Martin: good morning
Thank you very much for your detailed explanation. Got it now.
With many thanks
Abou
On Tue, Sep 26, 2023, 3:24 AM Martin Maechler <maechler using stat.math.ethz.ch>
wrote:
> >>>>> Jeff Newmiller via R-help
> >>>>> on Mon, 25 Sep 2023 18:46:02 -0700 writes:
>
> > You never created any object in R called irisdataTest. Objects in
> the global environment have names that are unrelated to the names of files
> on disk.
> > The load function modifies an environment to create a variable named
> as it was named in the environment from which it was saved. Thus, you
> cannot simply load an object that was saved with one name into an object
> named something else. It is possible to create a new environment to put the
> loaded objects into, but I wouldn't recommend trying to explain how to do
> that to a beginner. Rather, I would instead recommend using saveRDS and
> readRDS instead to save/load exactly one object at a time without storing
> the object name.
>
> > saveRDS( mtcars, "my_mtcars.rds" )
> > new_obj <- readRDS( "my_mtcars.rds" )
>
> > I would also guide them to never save their environment when
> prompted by R... the .RData file this creates will remember mistakes made
> in previous sessions making troubleshooting very difficult later. Instead
> they should focus on making a top-to-bottom script that has all their
> analysis steps so they can start from scratch.
>
> Yes!
>
> And just re-iterating what Jeff mentioned above:
> Notably when teaching, the use of saveRDS() and readRDS()
> should be emphasized as safer / self-documenting, ...
> for the case where there's just one object to save/load.
>
> *and* you can always put several objects into a list and
> saveRDS() / readRDS() that.
>
> Note: Our pkg {sfsmisc} nowadays contains a nice utility function
> list_() ==> help page online e.g. here
>
> https://search.r-project.org/CRAN/refmans/sfsmisc/html/list_named.html
>
> which comes were handy when you want to easily create a *named*
> list from a bunch of objects, as e.g. above to be able to nicely use
>
> saveRDS(list_(obj1, obj2, table3, grob4, data5),
> file = "allthings.rds")
>
> The cute utility is very simply defined as
>
> ##' list_(a, b, cc) creates a *named* list using the actual arguments'
> names
> list_ <- function(...) `names<-`(list(...), vapply(sys.call()[-1L],
> as.character, ""))
>
>
> > On September 25, 2023 6:23:01 PM PDT, AbouEl-Makarim Aboueissa <
> abouelmakarim1962 using gmail.com> wrote:
> >> Dear ALL:
> >>
> >> I am teaching statistical packages class this semester, in R
> programing I
> >> am trying to explain the use of save() and load() with an example
> using the
> >> iris data. It seems that the save() function works, BUT when I
> tried to
> >> load the data back to R, it seems that there is a problem(s), I
> could not
> >> figure out what went wrong.
> >>
> >> Any help would be highly appreciated.
> >>
> >>
> >> I saved the iris data in my computer in the text format,
> "iris.with.head.txt
> >> ".
> >>
> >> Here are my R codes:
> >>
> >>> irisdata<-read.table("G:/iris.with.head.txt", header=T)
> >>>
> >>> head(irisdata)
> >> Sepal.Length Sepal.Width Petal.Length Petal.Width Species
> >> 1 5.1 3.5 1.4 0.2 setosa
> >> 2 4.9 3.0 1.4 0.2 setosa
> >> 3 4.7 3.2 1.3 0.2 setosa
> >> 4 4.6 3.1 1.5 0.2 setosa
> >> 5 5.0 3.6 1.4 0.2 setosa
> >> 6 5.4 3.9 1.7 0.4 setosa
> >>
> >>
> >>
> >> *##### saving the data as an .rda*
> >>
> >> save(irisdata,file="G:/irisdataTest.rda")
> >>
> >> *##### load the data back to R*
> >>
> >> load(file="G:/irisdataTest.rda")
> >>
> >>
> >>> head(irisdataTest)
> >> Error in head(irisdataTest) : object 'irisdataTest' not found
> >>
> >>> irisdataTest
> >> Error: object 'irisdataTest' not found
> >>
> >>
> >>
> >> with many thanks
> >> abou
> >> ______________________
> >>
> >>
> >> *AbouEl-Makarim Aboueissa, PhD*
> >>
> >> *Professor, Mathematics and Statistics*
> >> *Graduate Coordinator*
> >>
> >> *Department of Mathematics and Statistics*
> >> *University of Southern Maine*
> >>
> >> [[alternative HTML version deleted]]
> >>
> >> ______________________________________________
> >> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> >> 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.
>
> > --
> > Sent from my phone. Please excuse my brevity.
>
> > ______________________________________________
> > R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> > 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.
>
[[alternative HTML version deleted]]
More information about the R-help
mailing list