If 'tab' is a data.frame then new.tab <- tab[[mvar]] is a column from that data.frame, not a data.frame with one column. new.tab <- tab[ , mvar, drop=FALSE ] will give you a data.frame that you can add to with either of nvar <- "newName" new.tab[ , nvar] <- newColumn new.tab[[nvar]] <- newColumn
If you have a fixed name for the new column (not a variable containing the name), you can also use new.tab <- cbind(new.tab, newName=newColumn) new.tab$newName <- newColumn Bill Dunlap TIBCO Software wdunlap tibco.com On Fri, Feb 5, 2016 at 8:53 AM, Amoy Yang via R-help <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. > [[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.