Subset an object based on logical criteria
Source:R/generics.R
, R/fnames.R
, R/freqlist.R
, and 2 more
keep_bool.Rd
These methods can be used to subset objects based on a logical vector.
Usage
keep_bool(x, bool, invert = FALSE, ...)
drop_bool(x, bool, ...)
# S3 method for fnames
drop_bool(x, bool, ...)
# S3 method for fnames
keep_bool(x, bool, invert = FALSE, ...)
# S3 method for freqlist
drop_bool(x, bool, ...)
# S3 method for freqlist
keep_bool(x, bool, invert = FALSE, ...)
# S3 method for tokens
drop_bool(x, bool, ...)
# S3 method for tokens
keep_bool(x, bool, invert = FALSE, ...)
# S3 method for types
drop_bool(x, bool, ...)
# S3 method for types
keep_bool(x, bool, invert = FALSE, ...)
Arguments
- x
An object of any of the classes for which the method is implemented.
- bool
A logical vector of the same length as
x
. Ifbool
is not of the correct length, it is recycled. Assuminginvert
isFALSE
, those items are selected for whichbool
isTRUE
.- invert
Logical. Whether the matches should be selected rather than the non-matches.
- ...
Additional arguments.
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_pos()
,
keep_re()
,
keep_types()
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_bool(flist, type_freqs(flist) < 2)
#> Frequency list (types in list: 3, tokens in list: 3)
#> <total number of tokens: 5>
#> rank orig_rank type abs_freq nrm_freq
#> ---- --------- ----- -------- --------
#> 1 2 and 1 2000
#> 2 3 man 1 2000
#> 3 4 mouse 1 2000
drop_bool(flist, type_freqs(flist) >= 2)
#> Frequency list (types in list: 3, tokens in list: 3)
#> <total number of tokens: 5>
#> rank orig_rank type abs_freq nrm_freq
#> ---- --------- ----- -------- --------
#> 1 2 and 1 2000
#> 2 3 man 1 2000
#> 3 4 mouse 1 2000
keep_bool(flist, ranks(flist) <= 3)
#> Frequency list (types in list: 3, tokens in list: 4)
#> <total number of tokens: 5>
#> rank orig_rank type abs_freq nrm_freq
#> ---- --------- ---- -------- --------
#> 1 1 the 2 4000
#> 2 2 and 1 2000
#> 3 3 man 1 2000
keep_bool(flist, c(FALSE, TRUE, TRUE, FALSE))
#> Frequency list (types in list: 2, tokens in list: 2)
#> <total number of tokens: 5>
#> rank orig_rank type abs_freq nrm_freq
#> ---- --------- ---- -------- --------
#> 1 2 and 1 2000
#> 2 3 man 1 2000
(flist2 <- keep_bool(flist, type_freqs(flist) < 2))
#> Frequency list (types in list: 3, tokens in list: 3)
#> <total number of tokens: 5>
#> rank orig_rank type abs_freq nrm_freq
#> ---- --------- ----- -------- --------
#> 1 2 and 1 2000
#> 2 3 man 1 2000
#> 3 4 mouse 1 2000
keep_bool(flist2, orig_ranks(flist2) > 2)
#> Frequency list (types in list: 2, tokens in list: 2)
#> <total number of tokens: 5>
#> rank orig_rank type abs_freq nrm_freq
#> ---- --------- ----- -------- --------
#> 1 3 man 1 2000
#> 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_bool(tps, c(TRUE, FALSE))
#> Type collection of length 5
#> type
#> ----
#> 1 a
#> 2 c
#> 3 e
#> 4 g
#> 5 i
drop_bool(tps, c(TRUE, FALSE))
#> 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_bool(tks, c(TRUE, FALSE))
#> Token sequence of length 5
#> idx token
#> --- -----
#> 1 a
#> 2 c
#> 3 e
#> 4 g
#> 5 i
drop_bool(tks, c(TRUE, FALSE))
#> Token sequence of length 5
#> idx token
#> --- -----
#> 1 b
#> 2 d
#> 3 f
#> 4 h
#> 5 j