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
.subset(x, ...)
.subset2(x, ...)
Arguments
x |
object from which to extract elements |
i , j , ... , name |
elements to extract or replace |
drop |
For data frames, matrices, and arrays. If |
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.
The functions .subset
and .subset2
are essentially
equivalent to the [
and [[
operators, except that
methods dispatch does not take place. This is to avoid expensive
unclassing in order to apply the default method to an object. They
should not normally be invoked by end users.
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