Create macro_var in R
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 <amoy_y at 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 <ggrothendieck at 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 at 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, "ruipbarradas at sapo.pt" <ruipbarradas at 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 at 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.duncan at 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 at 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 at 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]]