... and wrap it all up into a single function call that could even have the user interactively supply the input data file names.
Cheers, Bert Bert Gunter Genentech Nonclinical Biostatistics (650) 467-7374 "Data is not information. Information is not knowledge. And knowledge is certainly not wisdom." Clifford Stoll On Wed, Jun 25, 2014 at 8:23 AM, Jeff Newmiller <jdnew...@dcn.davis.ca.us> wrote: > Seems to me you are creating your own troubles in your "requirements". If the > analysis is the same from case to case, it makes more sense to use a single > set of object names within the analysis and change only the names of the > input and output files. > --------------------------------------------------------------------------- > Jeff Newmiller The ..... ..... Go Live... > DCN:<jdnew...@dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go... > Live: OO#.. Dead: OO#.. Playing > Research Engineer (Solar/Batteries O.O#. #.O#. with > /Software/Embedded Controllers) .OO#. .OO#. rocks...1k > --------------------------------------------------------------------------- > Sent from my phone. Please excuse my brevity. > > On June 25, 2014 7:53:33 AM PDT, David Stevens <david.stev...@usu.edu> wrote: >>Greg - I appreciate your taking the time to explain. This is very >>helpful. My case was a bit unusual as I'm helping a colleague with code >> >>to use on a regular but individual basis. I want them to name a data >>set >>once at the top of the script and have that name propagate through >>several objects that end up being saved at the end with file names tied >> >>to the data set name. Then tomorrow, they'll do the same thing on a >>different data set so each session would be pretty simple, with only >>2-3 >>named objects at the end, though the data sets are big and cumbersome. >> >>I'll dig into this more and apologize to those who thought this problem >> >>was too trivial for the r-help forum. >> >>David >> >>On 6/24/2014 4:00 PM, Greg Snow wrote: >>> The main reason to avoid assign/get is that there are better ways. >>> You can use a list or environment more directly without using >>> assign/get. Also the main reason to use assign/get is to work with >>> global variables which are frowned on in general programming (and >>> prone to hard to find bugs). >>> >>> Consider the following code snippet: >>> >>> x <- 1:10 >>> functionThatUsesAssign(x) >>> >>> what is the value of x after running this code? If you use global >>> variables then the answer is "I don't know", and if x was something >>> that took several hours to compute and I just accidentally overwrote >>> it, then I am probably not happy. >>> >>> Using assign often leads to the temptation to try code like: >>> >>> assign( "x[5]", 25 ) >>> >>> which does something (no warnings, no errors) but generally not what >>> was being attempted. >>> >>> Another common (mis)use of assign/get is to create a sequence of >>> variables like "data01", "data02", "data03", ... and then do the >>same >>> thing for each of the data objects. This is much better done by >>> putting all the objects into a single list, then you can easily >>> iterate over the list using lapply/sapply or still access the >>> individual pieces. Then when it comes time to save these objects, >>you >>> only need to save the list, not all the individual objects, same for >>> deleting, copying, moving, etc. And you don't have a bunch of >>> different objects cluttering your workspace, just a single list. >>> >>> On Tue, Jun 24, 2014 at 2:57 PM, David Stevens >><david.stev...@usu.edu> wrote: >>>> Thanks to all for the replies. I tried all three and they work >>great. I was >>>> misinterpreting the list = parameter in save(...) and I get your >>point about >>>> overwriting existing objects. I've heard about not using assign/get >>before. >>>> Can anyone point me to why and what alternatives there are? >>>> >>>> Regards >>>> >>>> David >>>> >>>> >>>> On 6/24/2014 2:50 PM, Henrik Bengtsson wrote: >>>>> I recommend to use saveRDS()/readRDS() instead. More convenient >>and >>>>> avoids the risk that load() has of overwriting existing variables >>with >>>>> the same name. >>>>> >>>>> /Henrik >>>>> >>>>> On Tue, Jun 24, 2014 at 1:45 PM, Greg Snow <538...@gmail.com> >>wrote: >>>>>> I think that you are looking for the `list` argument in `save`. >>>>>> >>>>>> save( list=foo, file=paste0(foo, '.Rdata') ) >>>>>> >>>>>> In general it is best to avoid using the assign function (and get >>when >>>>>> possible). Usually there are better alternatives. >>>>>> >>>>>> On Tue, Jun 24, 2014 at 2:35 PM, David Stevens >><david.stev...@usu.edu> >>>>>> wrote: >>>>>>> R community, >>>>>>> >>>>>>> Apologies if this has been answered. The concept I'm looking for >>is to >>>>>>> save() an object retrieved using get() for an object >>>>>>> that resulted from using assign. Something like >>>>>>> >>>>>>> save(get(foo),file=paste(foo,'rData',sep='')) >>>>>>> >>>>>>> where assign(foo,obj) creates an object named foo with the >>contents of >>>>>>> obj >>>>>>> assigned. For example, if >>>>>>> >>>>>>> x <- data.frame(v1=c(1,2,3,4),v2=c('1','2','3','4')) >>>>>>> foo = 'my.x' >>>>>>> assign(foo,x) >>>>>>> # (... then modify foo as needed) >>>>>>> save(get(foo),file=paste(foo,'.rData',sep='')) >>>>>>> >>>>>>> # though this generates " in save(get(foo), file = paste(foo, >>".rData", >>>>>>> sep >>>>>>> = "")) : >>>>>>> object ‘get(foo)’ not found", whereas >>>>>>> >>>>>>> get(foo) >>>>>>> >>>>>>> at the command prompt yields the contents of my.x >>>>>>> >>>>>>> There's a concept I'm missing here. Can anyone help? >>>>>>> >>>>>>> Regards >>>>>>> >>>>>>> David Stevens >>>>>>> >>>>>>> -- >>>>>>> David K Stevens, P.E., Ph.D. >>>>>>> Professor and Head, Environmental Engineering >>>>>>> Civil and Environmental Engineering >>>>>>> Utah Water Research Laboratory >>>>>>> 8200 Old Main Hill >>>>>>> Logan, UT 84322-8200 >>>>>>> 435 797 3229 - voice >>>>>>> 435 797 1363 - fax >>>>>>> david.stev...@usu.edu >>>>>>> >>>>>>> ______________________________________________ >>>>>>> R-help@r-project.org 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. >>>>>> >>>>>> >>>>>> -- >>>>>> Gregory (Greg) L. Snow Ph.D. >>>>>> 538...@gmail.com >>>>>> >>>>>> ______________________________________________ >>>>>> R-help@r-project.org 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. >>>> >>>> -- >>>> David K Stevens, P.E., Ph.D. >>>> Professor and Head, Environmental Engineering >>>> Civil and Environmental Engineering >>>> Utah Water Research Laboratory >>>> 8200 Old Main Hill >>>> Logan, UT 84322-8200 >>>> 435 797 3229 - voice >>>> 435 797 1363 - fax >>>> david.stev...@usu.edu >>>> >>>> ______________________________________________ >>>> R-help@r-project.org 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. >>> >>> >> >>-- >>David K Stevens, P.E., Ph.D. >>Professor and Head, Environmental Engineering >>Civil and Environmental Engineering >>Utah Water Research Laboratory >>8200 Old Main Hill >>Logan, UT 84322-8200 >>435 797 3229 - voice >>435 797 1363 - fax >>david.stev...@usu.edu >> >>______________________________________________ >>R-help@r-project.org 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. > > ______________________________________________ > R-help@r-project.org 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. ______________________________________________ R-help@r-project.org 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.