mirror of
https://github.com/msberends/AMR.git
synced 2025-07-10 08:22:04 +02:00
(v1.6.0.9008) unlike, bugfix for col_mo naming
This commit is contained in:
19
man/like.Rd
19
man/like.Rd
@ -3,7 +3,9 @@
|
||||
\name{like}
|
||||
\alias{like}
|
||||
\alias{\%like\%}
|
||||
\alias{\%unlike\%}
|
||||
\alias{\%like_case\%}
|
||||
\alias{\%unlike_case\%}
|
||||
\title{Vectorised Pattern Matching with Keyboard Shortcut}
|
||||
\source{
|
||||
Idea from the \href{https://github.com/Rdatatable/data.table/blob/ec1259af1bf13fc0c96a1d3f9e84d55d8106a9a4/R/like.R}{\code{like} function from the \code{data.table} package}, although altered as explained in \emph{Details}.
|
||||
@ -13,7 +15,11 @@ like(x, pattern, ignore.case = TRUE)
|
||||
|
||||
x \%like\% pattern
|
||||
|
||||
x \%unlike\% pattern
|
||||
|
||||
x \%like_case\% pattern
|
||||
|
||||
x \%unlike_case\% pattern
|
||||
}
|
||||
\arguments{
|
||||
\item{x}{a character vector where matches are sought, or an object which can be coerced by \code{\link[=as.character]{as.character()}} to a character vector.}
|
||||
@ -29,15 +35,15 @@ A \link{logical} vector
|
||||
Convenient wrapper around \code{\link[=grepl]{grepl()}} to match a pattern: \code{x \%like\% pattern}. It always returns a \code{\link{logical}} vector and is always case-insensitive (use \code{x \%like_case\% pattern} for case-sensitive matching). Also, \code{pattern} can be as long as \code{x} to compare items of each index in both vectors, or they both can have the same length to iterate over all cases.
|
||||
}
|
||||
\details{
|
||||
These \code{\link[=like]{like()}} and \verb{\%like\%} functions:
|
||||
These \code{\link[=like]{like()}} and \verb{\%like\%}/\verb{\%unlike\%} functions:
|
||||
\itemize{
|
||||
\item Are case-insensitive (use \verb{\%like_case\%} for case-sensitive matching)
|
||||
\item Are case-insensitive (use \verb{\%like_case\%}/\verb{\%unlike_case\%} for case-sensitive matching)
|
||||
\item Support multiple patterns
|
||||
\item Check if \code{pattern} is a valid regular expression and sets \code{fixed = TRUE} if not, to greatly improve speed (vectorised over \code{pattern})
|
||||
\item Always use compatibility with Perl unless \code{fixed = TRUE}, to greatly improve speed
|
||||
}
|
||||
|
||||
Using RStudio? The text \verb{\%like\%} can also be directly inserted in your code from the Addins menu and can have its own Keyboard Shortcut like \code{Ctrl+Shift+L} or \code{Cmd+Shift+L} (see \code{Tools} > \verb{Modify Keyboard Shortcuts...}).
|
||||
Using RStudio? The \verb{\%like\%}/\verb{\%unlike\%} functions can also be directly inserted in your code from the Addins menu and can have its own keyboard shortcut like \code{Shift+Ctrl+L} or \code{Shift+Cmd+L} (see menu \code{Tools} > \verb{Modify Keyboard Shortcuts...}). If you keep pressing your shortcut, the inserted text will be iterated over \verb{\%like\%} -> \verb{\%unlike\%} -> \verb{\%like_case\%} -> \verb{\%unlike_case\%}.
|
||||
}
|
||||
\section{Stable Lifecycle}{
|
||||
|
||||
@ -65,12 +71,18 @@ a <- c("Test case", "Something different", "Yet another thing")
|
||||
b <- c( "case", "diff", "yet")
|
||||
a \%like\% b
|
||||
#> TRUE TRUE TRUE
|
||||
a \%unlike\% b
|
||||
#> FALSE FALSE FALSE
|
||||
|
||||
a[1] \%like\% b
|
||||
#> TRUE FALSE FALSE
|
||||
a \%like\% b[1]
|
||||
#> TRUE FALSE FALSE
|
||||
|
||||
# get isolates whose name start with 'Ent' or 'ent'
|
||||
example_isolates[which(mo_name(example_isolates$mo) \%like\% "^ent"), ]
|
||||
\donttest{
|
||||
# faster way, only works in R 3.2 and later:
|
||||
example_isolates[which(mo_name() \%like\% "^ent"), ]
|
||||
|
||||
if (require("dplyr")) {
|
||||
@ -78,6 +90,7 @@ if (require("dplyr")) {
|
||||
filter(mo_name() \%like\% "^ent")
|
||||
}
|
||||
}
|
||||
}
|
||||
\seealso{
|
||||
\code{\link[=grepl]{grepl()}}
|
||||
}
|
||||
|
Reference in New Issue
Block a user