ls() pattern question
Hello,
First, `ls` does not support `!=` for pattern, but it's actually throwing a
different error. For `rm`, the objects provided into `...` are substituted
(not evaluated), so you should really do something like
rm(list = ls(pattern = ...))
As for all except "con", "DB2", and "ora", I would try something like
setdiff(ls(), c("con", "DB2", "ora"))
and then add `rm` to that like
rm(list = setdiff(ls(), c("con", "DB2", "ora")))
On Wed, Jul 14, 2021 at 7:41 PM Kai Yang via R-help <r-help at r-project.org>
wrote:
Hello List,
I have many data frames in environment. I need to keep 3 data frames
only, con DB2 and ora.
I write the script to do this.
rm(ls(pattern != c("(con|DB2|ora)")))
but it give me an error message:
Error in rm(ls(pattern != c("(con|DB2|ora)"))) :
... must contain names or character strings
I think the pattern option doesn't support != ? and is it possible to fix
this?
Thank you,
Kai
[[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.