# eponge: Keep Your Environment Clean

en r eponge

eponge is a small package, which facilitates selective object removal. It was released on CRAN at 23th March 2020. Initially, the package was named sponge, but during first submission trial I found out, that currently there exists the SPONGE package, availbale on BioConductor. Because of that, I decided to rename my package, changing only one letter. The package was given a new name: eponge, which simply means sponge in French. Let me present, what the package was created for.

## Removing objects by name

Typically, when we want to remove all objects from the global environment, we can use click the broom icon in RStudio (supposing we use this IDE - but in most cases, we do). Alternatively, we can obtain the same results combining rm with ls.

# Remove all the objects
rm(list = ls())
# Remove object with 'iris' in its name
rm(list = ls(pattern = "iris"))


eponge offers a an equivalent shortcut: erase function. It’s particularly handy when we want to select some set of objects using regex pattern.

# Remove all the objects
eponge::erase()
# Remove object with 'iris' in its name
eponge::erase("iris")


## Removing objects by type

epnoge becomes even more useful, when we want to precisely remove a tiny subset of objects. Normally, we would use a combination of ls, get and rm functions. If we don’t want to recreate such code from scratch, eponge do it for us:

# Erasing by type
eponge::erase_if(is.character)
# We can use a regex pattern to identify the objects we want
eponge::erase_functions("prepare_")
# We can clean whole section in RStudio Envitonment tab
# Remove all the objects named in RStudio as "Data"
eponge::erase_data()
# Remove all the "Values" in RStidio
eponge::erase_values()


As we know, homonime objects mask each other. If we want to get rid of such objects from our environment, the most convenient way to do that is eponge’s erase_masking_* function family. At the moment, it embraces two functions:
• erase_masking
• erase_masking_functions
log <- function(x) print(paste0("Logging:", x))

eponge allows you to keep your R environments clean in easy way. Try it yourself!