You might also need the assign() function which is sort of the opposite of get()
Michael On Mon, Oct 24, 2011 at 12:15 PM, jim holtman <jholt...@gmail.com> wrote: > Write a function that encapsulates the following three lines: > > > city1997<- dataCleaning(read.csv2("C:\\city\\year1997.txt")) > city1997<- wasteCalculations(city1997, year = 1997) > if (city1997[1,1] == "Time") {city1997<- timeCalculations(city1997)} > > and then pass in the appropriate parameters. > > On Mon, Oct 24, 2011 at 12:09 PM, Wet Bell Diver <wetbelldi...@gmail.com> > wrote: >> >> Thanks so much, this is very very helpful. >> >> I do have one remaining question here. I definitely see the value of making >> a list of the datasets, an advise I will definitely follow. However, for >> educational purposes, I would still like to know how to automate the >> following without using a list: >> >> city1997<- dataCleaning(read.csv2("C:\\city\\year1997.txt")) >> city1997.waste<- wasteCalculations(city1997, year = 1997) >> if (city1997.waste[1,1] == "Time") {city1997.time<- >> timeCalculations(city1997)} >> city1998<- dataCleaning(read.csv2("C:\\city\\year1998.txt")) >> city1998.waste<- wasteCalculations(city1998, year = 1998) >> if (city1998.waste[1,1] == "Time") {city1998.time<- >> timeCalculations(city1998)} >> city1999<- dataCleaning(read.csv2("C:\\city\\year1999.txt")) >> city1999.waste<- wasteCalculations(city1999, year = 1999) >> if (city1999.waste[1,1] == "Time") {city1999.time<- >> timeCalculations(city1999)} >> save(city1997, city1998, city1999, city1997.waste, city1998.waste, >> city1999.waste, city1997.time, city1998.time, city1999.time, file = >> "cities.Rdata") >> >> so, how do I create objects with appropriate names and then have functions >> applied to them. (this is only an example of the kinds of manipulations I >> need to do, but if I can get the above to work, then I can figure out the >> rest for myself). >> Thanks for your help, can you solve this final piece of the puzzle as well? >> >> --Peter >> >> >> >> Op 23-10-2011 3:51, R. Michael Weylandt schreef: >>> >>> I had no idea mget() existed. How helpful! >>> >>> Thanks, >>> >>> MW >>> >>> On Sat, Oct 22, 2011 at 9:27 PM, Joshua Wiley<jwiley.ps...@gmail.com> >>> wrote: >>>> >>>> Or simplify things down: >>>> >>>> cityList<- mget(paste("city", 1997:2011, sep = ''), envir = .GlobalEnv) >>>> >>>> mget returns a list, all in one step. >>>> >>>> Cheers, >>>> >>>> Josh >>>> >>>> On Sat, Oct 22, 2011 at 6:19 PM, R. Michael Weylandt >>>> <michael.weyla...@gmail.com> wrote: >>>>> >>>>> A small clarification: the correct syntax would have been >>>>> >>>>> vector("list", length(n)) >>>>> >>>>> Michael >>>>> >>>>> On Sat, Oct 22, 2011 at 4:29 PM, R. Michael Weylandt >>>>> <michael.weyla...@gmail.com> <michael.weyla...@gmail.com> wrote: >>>>>> >>>>>> The more R way to do something like this is to put all your dataframes >>>>>> into a list and then run >>>>>> >>>>>> lappy(cityList, dataCleaning) # for example >>>>>> >>>>>> To get them into a list in the first place try this >>>>>> >>>>>> n = 1997:2011 >>>>>> cityList<- vector(length(n), 'list') >>>>>> for (i in n){ >>>>>> cityList[[i]]<- get(paste("city", i, sep="") >>>>>> } >>>>>> >>>>>> Hope this helps, >>>>>> >>>>>> Michael >>>>>> >>>>>> >>>>>> On Oct 22, 2011, at 3:13 PM, Wet Bell Diver<wetbelldi...@gmail.com> >>>>>> wrote: >>>>>> >>>>>>> R2.13.2, W7x64 >>>>>>> >>>>>>> Dear list, >>>>>>> >>>>>>> Excuse my ignorance, but I have gone through the R help (?parse, >>>>>>> ?eval, etc.) and still really don't know how to do the following. >>>>>>> I have the general following structure that I would like to automate >>>>>>> [edited to make it shorter]: >>>>>>> >>>>>>> city1997<- dataCleaning(read.csv2("C:\\city\\year1997.txt")) >>>>>>> city1997<- wasteCalculations(city1997, year = 1997) >>>>>>> if (city1997[1,1] == "Time") {city1997<- timeCalculations(city1997)} >>>>>>> city1998<- dataCleaning(read.csv2("C:\\city\\year1998.txt")) >>>>>>> city1998<- wasteCalculations(city1998, year = 1998) >>>>>>> if (city1998[1,1] == "Time") {city1998<- timeCalculations(city1998)} >>>>>>> city1999<- dataCleaning(read.csv2("C:\\city\\year1999.txt")) >>>>>>> city1999<- wasteCalculations(city1999, year = 1999) >>>>>>> if (city1999[1,1] == "Time") {city1999<- timeCalculations(city1999)} >>>>>>> >>>>>>> [....etc., all the way through....] >>>>>>> >>>>>>> city2011<- dataCleaning(read.csv2("C:\\city\\year2011.txt")) >>>>>>> city2011<- wasteCalculations(city2011, year = 2011) >>>>>>> if (city2011[1,1] == "Time") {city2011<- timeCalculations(city2011)} >>>>>>> >>>>>>> city.df<- data.frame(city1997$waste, city1998$waste, city1999$waste, >>>>>>> ...,city2011$waste) >>>>>>> save(city1997, city1998, city1999, ...., city2011, city.df, file = >>>>>>> "city.Rdata") >>>>>>> >>>>>>> and then the same thing with: municipality1981 through >>>>>>> municipality2011 >>>>>>> and then the same thing with: county1985 through county2011 >>>>>>> So, for both city, municipality, and county, across a (varying) range >>>>>>> of years the functions "dataCleaning", "wasteCalculations", and >>>>>>> "timeCalculations" are called and the final objects are pulled together >>>>>>> in a >>>>>>> dataframe and are then all saved together. >>>>>>> I can get all of this done manually (generating LONG repetitive code), >>>>>>> but I have A LOT of data that needs to be processed like this and that >>>>>>> becomes tedious and very repetitious. Besides, it feels silly to do >>>>>>> such a >>>>>>> task manually when using the powerful R language. Unfortunately, I have >>>>>>> no >>>>>>> clue how to do this. I have been wrestling with "parse", "eval", >>>>>>> "substitute" but I have to admit that I just don't seem to really >>>>>>> understand >>>>>>> how they work. Anyway, I can't get this to work, but have the feeling >>>>>>> it can >>>>>>> be done in a few lines. Who can help me with the code and the >>>>>>> explanation of >>>>>>> why that code works? >>>>>>> >>>>>>> Thanks, >>>>>>> Peter Verbeet >>>>>>> >>>>>>> ______________________________________________ >>>>>>> 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. >>>>> >>>> >>>> >>>> -- >>>> Joshua Wiley >>>> Ph.D. Student, Health Psychology >>>> Programmer Analyst II, ATS Statistical Consulting Group >>>> University of California, Los Angeles >>>> https://joshuawiley.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. >> > > > > -- > Jim Holtman > Data Munger Guru > > What is the problem that you are trying to solve? > > ______________________________________________ > 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.