Skip to content

a remove question

6 messages · Erin Hodgess, David Winsemius, Joshua Wiley +2 more

#
Dear R People:

I have the following:
[1] "CRAN_df"      "CRAN_df0"     "CRAN_df1"     "CRAN_mat"     "CRAN_sp"
 [6] "CRAN_spdf1"   "CRAN_spdf2"   "CRAN_spdf4"   "delauney_NY"  "dist2_NY"
[11] "dist3_NY"     "Gabriel_NY"   "NY8a_nb"      "rel_neigh_NY" "scot_BNG"
[16] "SOI_NY"
Warning message:
In rm(pattern = "NY*") : object 'NY*' not found
How do I remove all of NY* items, please?  I suspect it might be an sapply issue
thanks,
Erin
#
On Jan 16, 2011, at 4:08 PM, Erin Hodgess wrote:

            
Perhaps:

rm(list= ls()[grep("NY", ls()] )

If there is a pattern argument to rm (I haven't looked)  then it's  
possible that it would have succeeded with pattern="NY",  assuming you  
want any object name with "NY" someplace in it. The "*" looks wrong  
for grepping. ".+" would have looked more greppish, but its not really  
needed.
David Winsemius, MD
West Hartford, CT
#
On Jan 16, 2011, at 4:17 PM, David Winsemius wrote:

            
OOPs, missing paren:

  rm(list= ls()[grep("NY", ls() )] )
David Winsemius, MD
West Hartford, CT
#
On Sun, Jan 16, 2011 at 1:08 PM, Erin Hodgess <erinm.hodgess at gmail.com> wrote:
there is no "pattern" argument in rm(), the only reason trying to use
it did not fail is that it has the ... argument to allow many objects
to be passed that you would like removed.
I do not believe  '*' works in regular expressions as I suspect you
are trying to use it.  See ?regexp for details.
There is a list argument to rm() that you can use in conjunction with ls():

rm(list = ls(pattern = "NY"))

Cheers,

Josh

  
    
#
How about

   ls(pattern="NY")
   #rm(list=ls(pattern="NY"))
On Sunday 16 January 2011 22:08:16 Erin Hodgess wrote: