[R] Delete an object which is named indirectly.

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


With a better picture of what OP is trying to accomplish we could suggest the use of functions as a way to prevent the global environment from getting cluttered in the first place.

On July 26, 2025 12:39:44 AM PDT, Rui Barradas <ruipbarradas using sapo.pt> wrote:
>Hello,
>
>Good point, rm should be reserved for interactive use only.
>I didn't thought of lists but if the OP wants to delete junk.A it should be
>
>
>dta <- list(junk.A = -9999, junk.B = "junk.A")
>dta[dta[["junk.B"]]] <- NULL
>dta
>#> $junk.B
>#> [1] "junk.A"
>
>
>
>Hope this helps,
>
>Rui Barradas
>
>
>
>Às 08:21 de 26/07/2025, Jeff Newmiller via R-help escreveu:
>> 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