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@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@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.
______________________________________________
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 https://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.