[R] Delete an object which is named indirectly.

Jeff Newmiller jdnewm|| @end|ng |rom dcn@d@v|@@c@@u@
Sat Jul 26 09:21:53 CEST 2025


Don't take this the wrong way, but if you are writing code that behaves like this then you are doing no-one any favors. 

Just stop messing with variables and start learning how to work with lists.

dta <- list(junk.A = -9999, junk.B="junk.B")
dta[dta[["junk.B"]]] <- NULL
dta


On July 25, 2025 1:26:23 PM PDT, ressw--- via R-help <r-help using r-project.org> wrote:
>Make two objects
>
>junk.A = -9999
>junk.B = "junk.A"
>
>rm(junk.B) removes junk.B and not junk.A, as it should.
>
>Is there a function, e,g, "rm2", such that
>rm2(junk.B) will delete junk.A and not junk.B?
>
>Why doesn't this work?:
>> rm(eval(junk.B))
>Error in rm(eval(junk.B)) : ... must contain names or character strings
>since eval(junk.B) yields "junk.A"
>and
>> rm("junk.A")
>does work?
>
>R version 4.3.0 (2023-04-21)
>
>______________________________________________
>R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>https://stat.ethz.ch/mailman/listinfo/r-help
>PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
>and provide commented, minimal, self-contained, reproducible code.

-- 
Sent from my phone. Please excuse my brevity.



More information about the R-help mailing list