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.