Eliminar objetos en .GlobalEnv desde una función

Me gustaría crear una función (CleanEnvir) que básicamente llama a remove / rm y que elimina ciertos objetos de.GlobalEnv.

  CleanEnvir <- function(pattern = "tmp"){
      rm(list = ls()[grep("tmp", ls())], envir = globalenv())
  }

  keep <- 1
  tmp.to.be.removed <- 0
  ls()

  ## does not work
  CleanEnvir()
  ls()

  ## does work
  rm(list = ls()[grep("tmp", ls())], envir = globalenv())
  ls()

Respuestas a la pregunta(3)

Su respuesta a la pregunta