Yes, you can use a name stored in a variable to create a new column in a data frame (guessing that's what you want). Here's an example:
> df <- data.frame(a=1:5) > df[['b']] <- 2:6 > df a b 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 > mvar <- 'c' > df[[mvar]] <- 0:4 > df a b c 1 1 2 0 2 2 3 1 3 3 4 2 4 4 5 3 5 5 6 4 In your case, the object named "new.tab" does not exist when you try to create a new variable in it. That's what the error message says. Try, perhaps, new.tab <- tab new.tab[[mvar]] <- d$pop (and hope that the number of elements in d$pop is the same as the number of rows in new.tab) -Don -- Don MacQueen Lawrence Livermore National Laboratory 7000 East Ave., L-627 Livermore, CA 94550 925-423-1062 On 2/5/16, 8:53 AM, "R-help on behalf of Amoy Yang via R-help" <r-help-boun...@r-project.org on behalf of r-help@r-project.org> wrote: > > > One more question (see below). I cannot use macro-var, mvar, for >creating new name, as shown below. Any advice is highly appreciated! > >> mvar<-"pop" >> new.pop<-tab[[mvar]]; new.pop > [1] 698 1214 1003 1167 2549 824 944 1937 935 570 0 >> new.tab[[mvar]]<-d$pop; >Error in new.tab[[mvar]] <- d$pop : object 'new.tab' not found > > On Thursday, February 4, 2016 11:02 AM, Amoy Yang <amo...@yahoo.com> >wrote: > > > This works although it looks rare by using min(",key,"). Don't know why >but just have to remember it. This is a tough part in R. >Thanks for helps! >Amoy > > On Wednesday, February 3, 2016 5:25 PM, Gabor Grothendieck ><ggrothendi...@gmail.com> wrote: > > > See > > Example 5. Insert Variables > >on the sqldf home page. > > https://github.com/ggrothendieck/sqldf > > >On Wed, Feb 3, 2016 at 2:16 PM, Amoy Yang via R-help ><r-help@r-project.org> wrote: >> First, MVAR<-c("population) should be the same as "population'". >>Correct? >> You use tab[[MVAR]] to refer to "population" where double [[...]] >>removes double quotes "...", which seemingly work for r-code although it >>is tedious in comparison direct application in SAS %let MVAR=population. >>But it does not work for sqldef in R as shown below. >> >>> key<-"pop" >>> library(sqldf) >>> sqldf("select grade, count(*) as cnt, min(tab[[key]]) as min, >> + max(pop) as max, avg(pop) as mean, median(pop) as median, >> + stdev(pop) as stdev from tab group by grade") >> Error in sqliteSendQuery(con, statement, bind.data) : >> error in statement: near "[[key]": syntax error >> >> >> >> >> On Wednesday, February 3, 2016 12:40 PM, "ruipbarra...@sapo.pt" >><ruipbarra...@sapo.pt> wrote: >> >> >> Hello, >> >> You can't use tab$MVAR but you can use tab[[MVAR]] if you do MVAR <- >>"population" (no need for c()). >> >> Hope this helps, >> >> Rui Barradas >> Citando Amoy Yang via R-help <r-help@r-project.org>: >> population is the field-name in data-file (say, tab). MVAR<-population >>takes data (in the column of population) rather than field-name as done >>in SAS: %let MVAR=population; >> In the following r-program, for instance, I cannot use ... >>tab$MVAR...or simply MVAR itself since MVAR is defined as "population" >>with double quotes if using MVAR<-c("population") >> >> On Wednesday, February 3, 2016 11:54 AM, Duncan Murdoch >><murdoch.dun...@gmail.com> wrote: >> >> >> On 03/02/2016 12:41 PM, Amoy Yang via R-help wrote: >> There is a %LET statement in SAS: %let MVAR=population; Thus, MVAR can >>be used through entire program. >> In R, I tried MAVR<-c("population"). The problem is that MAVR comes >>with double quote "...." that I don't need. But MVAR<-c(population) did >>NOT work out. Any way that double quote can be removed as done in SAS >>when creating macro_var? >> Thanks in advance for helps! >> R doesn't have a macro language, and you usually don't need one. >> >> If you are only reading the value of population, then >> >> MAVR <- population >> >> is fine. This is sometimes the same as c(population), but in general >> it's different: c() will remove some attributes, such as >> the dimensions on arrays. >> >> If you need to modify it in your program, it's likely more complicated. >> The normal way to go would be to put your code in a function, and have >> it return the modified version. For example, >> >> population <- doModifications(population) >> >> where doModifications is a function with a definition like >> >> doModifications <- function(MAVR) { >> # do all your calculations on MAVR >> # then return it at the end using >> MAVR >> } >> >> Duncan Murdoch >> >> >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide >>http://www.r-project.org/posting-guide.htmlandprovide commented, >>minimal, self-contained, reproducible code. >> >> >> >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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. > > > >-- >Statistics & Software Consulting >GKX Group, GKX Associates Inc. >tel: 1-877-GKX-GROUP >email: ggrothendieck at gmail.com > > > > > > > [[alternative HTML version deleted]] > >______________________________________________ >R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >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 -- To UNSUBSCRIBE and more, see 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.