expss (version 0.10.5)

where: Subset (filter) data.frames/matrices/vectors/lists

Description

For the data frame cond will be evaluated in the data.frame's context. So columns can be referred as variables in the expression (see the examples). If data is list then where will be applied to each element of the list. For other types (vector/matrix) there is no non-standard evaluation. There is a special constant .N which equals to number of rows in data for usage in cond expression. .where is version for working with default dataset. See default_dataset.

Usage

where(data, cond)

.where(cond)

Arguments

data

data.frame/matrix/vector/list to be subsetted

cond

logical or numeric expression indicating elements or rows to keep: missing values (NA) are taken as FALSE. If data is data.frame then cond will be evaluated in the scope of the data.

Value

data.frame/matrix/vector/list which contains just selected rows.

Examples

Run this code
# NOT RUN {
# leave only 'setosa'
where(iris, Species == "setosa")
# leave only first five rows
where(iris, 1:5)


# example of .N usage. 
set.seed(42)
train = where(iris, sample(.N, 100))
str(train)

set.seed(42)
test = where(iris, -sample(.N, 100))
str(test)

# list example
set.seed(123)
rand_matr = matrix(sample(10, 60, replace = TRUE), ncol = 3)
rand_vec = sample(10, 20, replace = TRUE)
my_list = list(iris, rand_matr, rand_vec)
# two random elements from the each list item
where(my_list, sample(.N, 2))
# }

Run the code above in your browser using DataLab