detach {base} | R Documentation

## Detach Objects from the Search Path

### Description

Detach a database, i.e., remove it from the `search()` path of available R objects. Usually, this is either a `data.frame` which has been `attach`ed or a package which was required previously.

### Usage

    detach(name, pos = 2, version)

### Arguments

`name` | The object to detach. Defaults to `search()[pos]`. This can be an unquoted name or a character string but not a character vector. If a number is supplied this is taken as `pos`.
`pos` | Index position in `search()` of database to detach. When `name` is a number, `pos = name` is used.
`version` | A character string denoting a version number of the package to be removed. This should be used only with a versioned installation of the package: see `library`.

### Details

This most commonly used with a single number argument referring to a position on the search list, and can also be used with a unquoted or quoted name of an item on the search list such as `package:tools`.

When a package have been loaded with an explicit version number it can be detached using the name shown by `search` or by supplying `name` and `version`: see the examples.

### Value

The attached database is returned invisibly, either as `data.frame` or as `list`.

### Note

You cannot detach either the workspace (position 1) or the base package (the last item in the search list).

### References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

### See Also

`attach`, `library`, `search`, `objects`.

### Examples

    require(splines)#package
    detach(package:splines)
    ## could equally well use detach("package:splines")
    ## but NOT  pkg <- "package:splines"; detach(pkg)
    ## Instead, use
    library(splines)
    pkg <- "package:splines"
    detach(pos = match(pkg, search()))

    ## careful: do not do this unless 'splines' is not already loaded.
    library(splines)
    detach(2)# 'pos' used for 'name'

    ## an example of the name argument to attach
    ## and of detaching a database named by a character vector
    attach_and_detach <- function(db, pos=2)
    {
       name <- deparse(substitute(db))
       attach(db, pos=pos, name=name)
       print(search()[pos])
       eval(substitute(detach(n), list(n=name)))
    }
    attach_and_detach(women, pos=3)

    ## Not run:
    ## Using a versioned install
    library(ash, version="1.0-9")  # or perhaps just library(ash)
    # then one of
    detach("package:ash", version="1.0-9")
    # or
    detach("package:ash_1.0-9")
    ## End(Not run)

[Package base version 2.2.1 Index]