> startsWith('abc', 'a')
[1] TRUE
> startsWith('abc', 'c')
[1] FALSE
> endsWith('abc', 'a')
[1] FALSE
> endsWith('abc', 'c')
[1] TRUE
Answers:
不是那种内在的。
选项包括grepl
和substr
。
x <- 'ABCDE'
grepl('^AB', x) # starts with AB?
grepl('DE$', x) # ends with DE?
substr(x, 1, 2) == 'AB'
substr('ABCDE', nchar(x)-1, nchar(x)) == 'DE'
startsWith
和endsWith
存在。
正如3.3.0中(和)所添加的base
那样。startsWith
endsWith
> startsWith("what", "wha")
[1] TRUE
> startsWith("what", "ha")
[1] FALSE
https://stat.ethz.ch/R-manual/R-devel/library/base/html/startsWith.html
startsWith(x, prefix)
和” endsWith(x, suffix)
。从R changelog cran.r-project.org/doc/manuals/r-devel/NEWS.html
从dplyr
包中借用一些代码[请参见此],您可以执行以下操作:
starts_with <- function(vars, match, ignore.case = TRUE) {
if (ignore.case) match <- tolower(match)
n <- nchar(match)
if (ignore.case) vars <- tolower(vars)
substr(vars, 1, n) == match
}
ends_with <- function(vars, match, ignore.case = TRUE) {
if (ignore.case) match <- tolower(match)
n <- nchar(match)
if (ignore.case) vars <- tolower(vars)
length <- nchar(vars)
substr(vars, pmax(1, length - n + 1), length) == match
}
使用substring函数,这相对简单:
> strings = c("abc", "bcd", "def", "ghi", "xyzzd", "a")
> str_to_find = "de"
> substring(strings, 1, nchar(str_to_find)) == str_to_find
[1] FALSE FALSE TRUE FALSE FALSE FALSE
您可以使用子字符串将每个字符串切成所需的长度。长度是每个字符串开头要查找的字符数。
iris[grepl("^Petal",names(iris))]