Can one create a variable through a function by name createVariable <- function(name) { outputVariable = name name <- NULL } after calling createVariable("myVar") I would like to have a variable myVar initialized with NULL in my environment. Is this possible? Ralf
On Wed, Oct 6, 2010 at 9:32 AM, Ralf B <ralf.bierig at gmail.com> wrote:> Can one create a variable through a function by name > > createVariable <- function(name) { > ? ? ? ?outputVariable = name > ? ? ? ?name <- NULL > } > > after calling > > createVariable("myVar") > > I would like to have a variable myVar initialized with NULL in my > environment. Is this possible?This dirty trick works for me: createVariable <- function(name) {eval(parse(text = paste(name, "<<- NULL"))) } Example:> abcdError: object 'abcd' not found> createVariable("abcd") > abcdNULL Peter
On Wed, Oct 6, 2010 at 9:32 AM, Ralf B <ralf.bierig at gmail.com> wrote:> Can one create a variable through a function by name > > createVariable <- function(name) { > ? ? ? ?outputVariable = name > ? ? ? ?name <- NULL > } > > after calling > > createVariable("myVar") > > I would like to have a variable myVar initialized with NULL in my > environment. Is this possible?A clean solution is to use the function assign where you can specify the environment more precisely. look at ?assign Peter
An alternative to Peter's solution: createVariable <- function(name) {assign(name, NULL, envir=.GlobalEnv)} Jeff. On Wed, Oct 6, 2010 at 12:32 PM, Ralf B <ralf.bierig at gmail.com> wrote:> Can one create a variable through a function by name > > createVariable <- function(name) { > ? ? ? ?outputVariable = name > ? ? ? ?name <- NULL > } > > after calling > > createVariable("myVar") > > I would like to have a variable myVar initialized with NULL in my > environment. Is this possible? > > Ralf > > ______________________________________________ > 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. >
On Oct 6, 2010, at 12:32 PM, Ralf B wrote:> Can one create a variable through a function by nameIsn't that what "<-" does?> > createVariable <- function(name) { > outputVariable = name > name <- NULL > } > > after calling > > createVariable("myVar")?assign # and isn't this covered in R-FAQ? ?"<-" > "myVar" <- NULL > myVar NULL Doing it a bit differently" > "<-"("n1", NULL) > n1 NULL One could always wrap it in a function call. > CVN <- function(name) { name <- NULL } > CVN("test") > test NULL If you needed a function that by default created the variable in the global environment, then this would work: > createGVarNULL <- function(name) { + assign(name, NULL, envir = .GlobalEnv) } > createGVarNULL("test") > test NULL An "assign" version of "<<-" I suppose. "myVar" <- NULL > myVar NULL> > I would like to have a variable myVar initialized with NULL in my > environment. Is this possible? > > Ralf >-- David Winsemius, MD West Hartford, CT
Possible? Yes (as others have shown), advisable? No, see fortune(106), fortune(236), and possibly fortune(181). What is your ultimate goal? Maybe we can help you find a better way. -- Gregory (Greg) L. Snow Ph.D. Statistical Data Center Intermountain Healthcare greg.snow at imail.org 801.408.8111> -----Original Message----- > From: r-help-bounces at r-project.org [mailto:r-help-bounces at r- > project.org] On Behalf Of Ralf B > Sent: Wednesday, October 06, 2010 10:32 AM > To: r-help Mailing List > Subject: [R] Create variable by name > > Can one create a variable through a function by name > > createVariable <- function(name) { > outputVariable = name > name <- NULL > } > > after calling > > createVariable("myVar") > > I would like to have a variable myVar initialized with NULL in my > environment. Is this possible? > > Ralf > > ______________________________________________ > 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.