The structural attributes of a corpus (s-attributes) can be used to generate subcorpora (i.e. a subcorpus class object) by applying the subset-method. To obtain a subcorpus, the subset-method can be applied on a corpus represented by a corpus object, a length-one character vector (as a shortcut), and on a subcorpus object.

# S4 method for corpus
subset(x, subset, regex = FALSE, ...)

# S4 method for character
subset(x, ...)

# S4 method for subcorpus
subset(x, subset, ...)

# S4 method for remote_corpus
subset(x, subset)

Arguments

x

A corpus or subcorpus object. A corpus may also specified by a length-one character vector.

subset

A logical expression indicating elements or rows to keep. The expression may be unevaluated (using quote or bquote).

regex

A logical value. If TRUE, values for s-attributes defined using the three dots (...) are interpreted as regular expressions and passed into a grep call for subsetting a table with the regions and values of structural attributes. If FALSE (the default), values for s-attributes must match exactly.

...

An expression that will be used to create a subcorpus from s-attributes.

See also

The methods applicable for the subcorpus object resulting from subsetting a corpus or subcorpus are described in the documentation of the subcorpus-class. Note that the subset-method can also be applied to textstat-class objects (and objects inheriting from this class).

Examples

use("polmineR")
#> ... activating corpus: GERMAPARLMINI (version: 0.0.1 | build date: 2019-02-23)
#> ... activating corpus: REUTERS
# examples for standard and non-standard evaluation a <- corpus("GERMAPARLMINI") # subsetting a corpus object using non-standard evaluation sc <- subset(a, speaker == "Angela Dorothea Merkel") sc <- subset(a, speaker == "Angela Dorothea Merkel" & date == "2009-10-28") sc <- subset(a, grepl("Merkel", speaker)) sc <- subset(a, grepl("Merkel", speaker) & date == "2009-10-28") # subsetting corpus specified by character vector sc <- subset("GERMAPARLMINI", grepl("Merkel", speaker)) sc <- subset("GERMAPARLMINI", speaker == "Angela Dorothea Merkel") sc <- subset("GERMAPARLMINI", speaker == "Angela Dorothea Merkel" & date == "2009-10-28") sc <- subset("GERMAPARLMINI", grepl("Merkel", speaker) & date == "2009-10-28") # subsetting a corpus using the (old) logic of the partition-method sc <- subset(a, speaker = "Angela Dorothea Merkel") sc <- subset(a, speaker = "Angela Dorothea Merkel", date = "2009-10-28") sc <- subset(a, speaker = "Merkel", regex = TRUE) sc <- subset(a, speaker = c("Merkel", "Kauder"), regex = TRUE) sc <- subset(a, speaker = "Merkel", date = "2009-10-28", regex = TRUE) # providing the value for s-attribute as a variable who <- "Volker Kauder" sc <- subset(a, quote(speaker == who))
#> Error in eval(stub[[3L]], x, enclos): object 'who' not found
# use bquote for quasiquotation when using a variable for subsetting in a loop for (who in c("Angela Dorothea Merkel", "Volker Kauder", "Ronald Pofalla")){ sc <- subset(a, bquote(speaker == .(who))) if (interactive()) print(size(sc)) }
#> Error in .checkTypos(e, names_x): Object 'who' not found amongst struc, cpos_left, cpos_right, speaker
# equivalent procedure with lapply (DOES NOT WORK YET) b <- lapply( c("Angela Dorothea Merkel", "Volker Kauder", "Ronald Pofalla"), function(who) subset(a, bquote(speaker == .(who))) )
#> Error in .checkTypos(e, names_x): Object 'who' not found amongst struc, cpos_left, cpos_right, speaker
sapply(b, size)
#> Error in lapply(X = X, FUN = FUN, ...): object 'b' not found