"Biedermann, Jürgen"
2010-Mar-24 11:43 UTC
[R] How to use the paste function to create an already used variable
Hi there, I have the following problem Four data frames exist: data1 data2 data3 data4 Now I want to write a loop and temporarily store the data1, data2, data3, data4 in a variable called data. I tried the following... for (i in 1:4) { Data <- paste("data",i,sep="") ... .. } but it doesn't function. I think the problem is the definition of the mode of the pasted variable. Could anyone help me? Thanks Greetings J?rgen
Tal Galili
2010-Mar-24 13:25 UTC
[R] How to use the paste function to create an already used variable
Try: for (i in 1:4) { Data <- eval(parse(text = paste("data",i,sep=""))) ... .. } (and if there are other solutions - I would love to know) ----------------Contact Details:------------------------------------------------------- Contact me: Tal.Galili@gmail.com | 972-52-7275845 Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il (Hebrew) | www.r-statistics.com (English) ---------------------------------------------------------------------------------------------- 2010/3/24 "Biedermann, Jürgen" <juergen.biedermann@charite.de>> Hi there, > > I have the following problem > > Four data frames exist: > > data1 > data2 > data3 > data4 > > Now I want to write a loop and temporarily store the data1, data2, data3, > data4 in a variable called data. > I tried the following... > > for (i in 1:4) { > Data <- paste("data",i,sep="") > ... > .. > } > > > but it doesn't function. I think the problem is the definition of the mode > of the pasted variable. > > Could anyone help me? > Thanks > > Greetings > Jürgen > > ______________________________________________ > 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. >[[alternative HTML version deleted]]
Henrique Dallazuanna
2010-Mar-24 13:35 UTC
[R] How to use the paste function to create an already used variable
Try this: Data <- lapply(ls(pattern = 'data[0-9]'), get) Data[[1]] is data1 Data[[2]] is data2 .... etc. 2010/3/24 "Biedermann, J?rgen" <juergen.biedermann at charite.de>:> Hi there, > > I have the following problem > > Four data frames exist: > > data1 > data2 > data3 > data4 > > Now I want to write a loop and temporarily store the data1, data2, data3, > data4 in a variable called data. > I tried the following... > > for (i in 1:4) { > Data <- paste("data",i,sep="") > ... > .. > } > > > but it doesn't function. I think the problem is the definition of the mode > of the pasted variable. > > Could anyone help me? > Thanks > > Greetings > J?rgen > > ______________________________________________ > R-help at 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. >-- Henrique Dallazuanna Curitiba-Paran?-Brasil 25? 25' 40" S 49? 16' 22" O
"Biedermann, Jürgen"
2010-Mar-25 12:41 UTC
[R] How to use the paste function to create an already used variable
Perfekt! So, the code below does, what I want it does. for (m in 1:AnzRat) { Daten_akt <- eval(parse(text=paste("Daten",m,"_akt",sep=""))) ... ... assign(paste("Daten",m,"_akt",sep=""),Daten_akt) } Patrick Burns schrieb:> I think you are looking for 'assign'. > > On 25/03/2010 09:40, "Biedermann, Jürgen" wrote: > >> Thank you very much for the solutions! :-) >> >> It's my fault, but I forgot to mention that at the end of the loop, I >> would like to give >> >> "Data" back to data1, data2, data3, data4 >> >> The eval formula only seems to work in one direction (it's the same with >> the get function) >> >> for (i in 1:4) { >> Data[[i]]<- eval(parse(text = paste("data",i,sep=""))) >> ... >> ... >> >> eval(parse(text = paste("data",i,sep="")))<- Data[[i]] # --> I get an error message here >> >> >> } >> >> I know that generally it's much better to stick to lists in this kind of kontext, >> but I don't wanna change the whole structure of the rest of my code. >> >> Thanks >> >> Greetings >> Jürgen >> >> >> >> >> >> >> David Winsemius schrieb: >> >>> On Mar 24, 2010, at 9:25 AM, Tal Galili wrote: >>> >>> >>> >>>> Try: >>>> >>>> for (i in 1:4) { >>>> Data<- eval(parse(text = paste("data",i,sep=""))) >>>> ... >>>> .. >>>> } >>>> >>>> >>>> (and if there are other solutions - I would love to know) >>>> >>>> >>> Well, it's not actually a solution since the first three fetched >>> values would have been overwritten. >>> >>> Instead: >>> >>> Data<- list() >>> for (i in 1:4) { >>> Data[[i]]<- eval(parse(text = paste("data",i,sep=""))) } >>> >>> >>>> ----------------Contact >>>> Details:------------------------------------------------------- >>>> Contact me: Tal.Galili@gmail.com | 972-52-7275845 >>>> Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il >>>> (Hebrew) | >>>> www.r-statistics.com (English) >>>> ---------------------------------------------------------------------------------------------- >>>> >>>> >>>> >>>> >>>> 2010/3/24 "Biedermann, Jürgen"<juergen.biedermann@charite.de> >>>> >>>> >>>> >>>>> Hi there, >>>>> >>>>> I have the following problem >>>>> >>>>> Four data frames exist: >>>>> >>>>> data1 >>>>> data2 >>>>> data3 >>>>> data4 >>>>> >>>>> Now I want to write a loop and temporarily store the data1, data2, >>>>> data3, >>>>> data4 in a variable called data. >>>>> I tried the following... >>>>> >>>>> for (i in 1:4) { >>>>> Data<- paste("data",i,sep="") >>>>> ... >>>>> .. >>>>> } >>>>> >>>>> >>>>> but it doesn't function. I think the problem is the definition of >>>>> the mode >>>>> of the pasted variable. >>>>> >>>>> Could anyone help me? >>>>> Thanks >>>>> >>>>> Greetings >>>>> Jürgen >>>>> >>>>> ______________________________________________ >>>>> 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. >>>>> >>>>> >>>>> >>>> [[alternative HTML version deleted]] >>>> >>>> ______________________________________________ >>>> 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 Winsemius, MD >>> West Hartford, CT >>> >>> >>> >> [[alternative HTML version deleted]] >> >> >> >> >> ______________________________________________ >> 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. >> > >[[alternative HTML version deleted]]