like.Rd
Convenient wrapper around grep
to match a pattern: a %like% b
. It always returns a logical
vector and is always case-insensitive. Also, pattern
(b
) can be as long as x
(a
) to compare items of each index in both vectors.
like(x, pattern) x %like% pattern
x | a character vector where matches are sought, or an
object which can be coerced by |
---|---|
pattern | character string containing a regular expression
(or character string for |
Idea from the like
function from the data.table
package, but made it case insensitive at default and let it support multiple patterns.
A logical
vector
Using RStudio? This function can also be inserted from the Addins menu and can have its own Keyboard Shortcut like Ctrl+Shift+L or Cmd+Shift+L (see Tools > Modify Keyboard Shortcuts...).
# simple test a <- "This is a test" b <- "TEST" a %like% b#> [1] TRUE#> TRUE b %like% a#> [1] FALSE#> FALSE # also supports multiple patterns, length must be equal to x a <- c("Test case", "Something different", "Yet another thing") b <- c("case", "diff", "yet") a %like% b#> [1] TRUE TRUE TRUE#> TRUE TRUE TRUE # get frequencies of bacteria whose name start with 'Ent' or 'ent' library(dplyr) septic_patients %>% left_join_microorganisms() %>% filter(genus %like% '^ent') %>% freq(genus, species)#>#> #> #> **Frequency table of `genus` and `species`** #> #> #> | |Item | Count| Percent| Cum. Count| Cum. Percent| #> |:--|:--------------------------|-----:|-------:|----------:|------------:| #> |1 |Enterococcus faecalis | 39| 35.8%| 39| 35.8%| #> |2 |Enterobacter cloacae | 23| 21.1%| 62| 56.9%| #> |3 |Enterococcus faecium | 21| 19.3%| 83| 76.1%| #> |4 |Enterococcus species | 20| 18.3%| 103| 94.5%| #> |5 |Enterobacter aerogenes | 3| 2.8%| 106| 97.2%| #> |6 |Enterococcus avium | 2| 1.8%| 108| 99.1%| #> |7 |Enterococcus casseliflavus | 1| 0.9%| 109| 100.0%| #> #>