Extract {base} | R Documentation

## Extract or Replace Parts of an Object

### Description

Operators act on vectors, arrays, dataframes and lists to extract or replace subsets.

### Usage

    x[i]
    x[i, j, ...]
    x[i, j, ... , drop=TRUE]
    x[[i]]
    x[[i, j, ...]]
    x$name

### Arguments

`i,j,name` | elements to extract or replace
`drop` | For data frames, matrices, and arrays. If `TRUE` the result is coerced to the lowest possible dimension (see examples below).

### Details

If one of these expressions appears on the left side of an assignment then that part of `x` is set to the value of the right hand side of the assignment.

These operators are generic. You can write methods to handle subsetting of specific classes of data.

The `[[` operator requires all relevant subscripts be supplied. With the `[` operator a comma separated blank indicates that all entries in that dimension are selected.

When `[.data.frame` is used for subsetting rows of a `data.frame`, it returns a dataframe with unique (and non-missing)row names, if necessary transforming the names using `make.names( * , unique = TRUE)`. See the `swiss` example below.

When operating on a list, the `[[` operator gives the specified element of the list while the `[` operator returns a list with the specified element(s) in it.

The operators `$` and `$<-` do not evaluate their second argument. It is translated to a string and that string is used to locate the correct component of the first argument.

### See Also

`list`, `array`, `matrix`.

`Syntax` for operator precedence.

### Examples

    x <- 1:12; m <- matrix(1:6,nr=2); li <- list(pi=pi, e = exp(1))
    x[10]                 # the tenth element of x
    m[1,]                 # the first row of matrix m
    m[1, , drop = FALSE]  # is a 1-row matrix
    li[[1]]               # the first element of list li
    y <- list(1,2,a=4,5)
    y[c(3,4)]             # a list containing elements 3 and 4 of y
    y$a                   # the element of y named a

    data(swiss)
    swiss[ c(1, 1:2), ]   # duplicate row, unique row names

[Package Contents]