On Tue, Feb 2, 2010 at 11:44, Ivan Calandra <ivan.calan...@uni-hamburg.de> wrote: > Hi David, > > Thanks for your answer. > But I don't really see how I can extend it with my real data. > The thing is that I have more than 3 names and 1 value for each name. > Moreover, each is different from one run to another. That is why I was > trying with a modification of names(). Also to be noted is that I simplified > the "name" in assign(); I actually have 2 other variables that will be > pasted to create the name. > > Here is my code (I kept only what is important for that part): > ---- > library(WRS) > seq.num <- seq(7,10,1) #column (variable) indexes to be used as > numerical variables > > # fac2list() separates the data from file[,k] into groups from levels in > file[3] and store into list mode. > for(i in 1:length(seq.num)) { > k <- seq.num[i] > name.num <- names(file)[k] > assign(paste(names(file)[3], name.num, sep="_"), fac2list(file[,k], > file[3])) > names(paste(names(file)[3], name.num, sep="_")) <- > levels(factor(file[[3]])) #that line doesn't work, but I would like > something in this direction > } > ----
Sounds like a job for 'get'. Try this (untested): names(get(paste(names(file)[3], name.num, sep="_"))) Good luck > > Thanks in advance for your help. > Regards, > Ivan > > > > Le 2/1/2010 18:47, David Winsemius a écrit : >> >> On Feb 1, 2010, at 12:33 PM, Ivan Calandra wrote: >> >>> I have a follow-up question: >>> >>> I use assign() to store some value in my paste()-created object as >>> suggested: >>> for (i in 1:3) { >>> assign(paste("object", i, sep=""), c("a", "b", "c")) >>> } >>> >>> Then I would like to change the names of the elements of that object >>> within the loop. Since it is all in a loop, I cannot give the name of the >>> object manually by doing something like: names(object1) <- c("tooth", >>> "bone", "species"). >>> The only thing I can give to names() is paste("object", i, sep=""), which >>> doesn't work. >>> >>> Any idea of how to do it? >> >> > for (i in paste("object", 1:3, sep="")) { >> + assign(i, c("tooth"="a", "bone"="b", "species"="c") ) >> + } >> > object1 >> tooth bone species >> "a" "b" "c" >> >>> >>> Thanks in advance >>> Ivan >>> >>> >>> Le 2/1/2010 17:14, David Winsemius a écrit : >>>> >>>> Upon reading it yesterday, it appeared as it would have required some >>>> serious testing and there was no data on which to do any work. You were >>>> clearly not taking the time to isolate the problem and construct a dataset. >>>> But who knows? When you say "What I want to do is. ... ,I would like the >>>> name of the list to be created in the loop too", maybe all you needed was >>>> to >>>> be pointed to was: >>>> >>>> ?assign >>>> >>>> But if that were the case, then you lost most of your audience along the >>>> way with a bunch of unneeded and obscure code. >>>> >> >> David Winsemius, MD >> Heritage Laboratories >> West Hartford, CT >> >> > > ______________________________________________ > 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.