Skip to contents

These methods can be used to subset objects based on a list of types.

Usage

keep_types(x, types, invert = FALSE, ...)

drop_types(x, types, ...)

# S3 method for fnames
drop_types(x, types, ...)

# S3 method for fnames
keep_types(x, types, invert = FALSE, ...)

# S3 method for freqlist
drop_types(x, types, ...)

# S3 method for freqlist
keep_types(x, types, invert = FALSE, ...)

# S3 method for tokens
drop_types(x, types, ...)

# S3 method for tokens
keep_types(x, types, invert = FALSE, ...)

# S3 method for types
drop_types(x, types, ...)

# S3 method for types
keep_types(x, types, invert = FALSE, ...)

Arguments

x

An object of any of the classes for which the method is implemented.

types

Either an object of the class types or a character vector.

invert

Logical. Whether the matches should be selected rather than the non-matches.

...

Additional arguments.

Value

Object of the same class as x with the selected elements only.

Details

The methods keep_pos() and drop_pos() are part of a family of methods of the mclm package used to subset different objects. The methods starting with keep_ extract the items in x based on the criterion specified by the second argument. In contrast, the methods starting with drop_ exclude the items that match the criterion in the same argument.

Calling a drop_ method is equivalent to calling its keep_ counterpart when the invert argument is TRUE.

See also

Other subsetters: brackets, keep_bool(), keep_pos(), keep_re()

Examples

# For a 'freqlist' object ------------------------
(flist <- freqlist("The man and the mouse.", as_text = TRUE))
#> Frequency list (types in list: 4, tokens in list: 5)
#> rank  type abs_freq nrm_freq
#> ---- ----- -------- --------
#>    1   the        2     4000
#>    2   and        1     2000
#>    3   man        1     2000
#>    4 mouse        1     2000
keep_types(flist, c("man", "and"))
#> Frequency list (types in list: 2, tokens in list: 2)
#> <total number of tokens: 5>
#> rank orig_rank type abs_freq nrm_freq
#> ---- --------- ---- -------- --------
#>    2         3  man        1     2000
#>    1         2  and        1     2000
drop_types(flist, c("man", "and"))
#> Frequency list (types in list: 2, tokens in list: 3)
#> <total number of tokens: 5>
#> rank orig_rank  type abs_freq nrm_freq
#> ---- --------- ----- -------- --------
#>    1         1   the        2     4000
#>    2         4 mouse        1     2000
keep_types(flist, c("man", "and"), invert = TRUE) # same as drop_types()
#> Frequency list (types in list: 2, tokens in list: 3)
#> <total number of tokens: 5>
#> rank orig_rank  type abs_freq nrm_freq
#> ---- --------- ----- -------- --------
#>    1         1   the        2     4000
#>    2         4 mouse        1     2000

# For a 'types' object ---------------------------
(tps <- as_types(letters[1:10]))
#> Type collection of length 10
#>    type
#>    ----
#>  1    a
#>  2    b
#>  3    c
#>  4    d
#>  5    e
#>  6    f
#>  7    g
#>  8    h
#>  9    i
#> 10    j

keep_types(tps, c("a", "c", "e", "g", "i"))
#> Type collection of length 5
#>   type
#>   ----
#> 1    a
#> 2    c
#> 3    e
#> 4    g
#> 5    i
drop_types(tps,  c("a", "c", "e", "g", "i"))
#> Type collection of length 5
#>   type
#>   ----
#> 1    b
#> 2    d
#> 3    f
#> 4    h
#> 5    j

# For a 'tokens' object --------------------------
(tks <- as_tokens(letters[1:10]))
#> Token sequence of length 10
#> idx token
#> --- -----
#>   1     a
#>   2     b
#>   3     c
#>   4     d
#>   5     e
#>   6     f
#>   7     g
#>   8     h
#>   9     i
#>  10     j

keep_types(tks, c("a", "c", "e", "g", "i"))
#> Token sequence of length 5
#> idx token
#> --- -----
#>   1     a
#>   2     c
#>   3     e
#>   4     g
#>   5     i
drop_types(tks,  c("a", "c", "e", "g", "i"))
#> Token sequence of length 5
#> idx token
#> --- -----
#>   1     b
#>   2     d
#>   3     f
#>   4     h
#>   5     j