ID EN
String Functions

subset

R Base 3.6.2

Return subsets of vectors, matrices or data frames which meet conditions.

Syntax

R
subset(x, &#8230;)<p></p><p># S3 method for default
subset(x, subset, &#8230;)</p><p># S3 method for matrix
subset(x, subset, select, drop = FALSE, &#8230;)</p><p># S3 method for data.frame
subset(x, subset, select, drop = FALSE, &#8230;)</p>

Arguments

Parameter Description
x object to be subsetted.
subset logical expression indicating elements or rows to keep: missing values are taken as false.
select expression, indicating columns to select from a data frame.
drop passed on to [ indexing operator.
&#8230; further arguments to be passed to or from other methods.

Return Value

An object similar to x contain just the selected elements (for a vector), rows and columns (for a matrix or data frame), and so on.

Details

This is a generic function, with methods supplied for matrices, data frames and vectors (including lists). Packages and users can add further methods. For ordinary vectors, the result is simply x[subset & !is.na(subset)]. For data frames, the subset argument works on the rows. Note that subset will be evaluated in the data frame, so columns can be referred to (by name) as variables in the expression (see the examples). The select argument exists only for the methods for data frames and matrices. It works by first replacing column names in the selection expression with the corresponding column numbers in the data frame and then using the resulting integer vector to index the columns. This allows the use of the standard indexing conventions so that for example ranges of columns can be specif

Examples

Example
R
# NOT RUN {
subset(airquality, Temp > 80, select = c(Ozone, Temp))
subset(airquality, Day == 1, select = -Temp)
subset(airquality, select = Ozone:Wind)

with(airquality, subset(Ozone, Temp > 80))

## sometimes requiring a logical 'subset' argument is a nuisance
nm <- rownames(state.x77)
start_with_M <- nm %in% grep("^M", nm, value = TRUE)
subset(state.x77, start_with_M, Illiteracy:Murder)
# but in recent versions of R this can simply be
subset(state.x77, grepl("^M", nm), Illiteracy:Murder)
# }

See Also

[ transform droplevels