Как сказал Джош О'Брайен.Чтобы немного расширить сопоставление без регистра в R, это на самом деле возможно с помощью регулярных выражений (например, grep
и grepl
)
. В этом случае вы можете использовать mapply
и grepl
следующим образом:при условии, что вы сопоставляете отдельные символы:
A1 <- c("a", "A", "a", "a", "A", "A", "a")
B1 <- c(rep("a", length(A1)))
mapply(grepl,A1,B1,ignore.case=TRUE)
# a A a a A A a
# TRUE TRUE TRUE TRUE TRUE TRUE TRUE
Вы должны быть осторожны, потому что он также соответствует частичным строкам, как это:
C1 <- rep('ab',length(A1))
mapply(grepl,A1,C1,ignore.case=TRUE)
# a A a a A A a
# TRUE TRUE TRUE TRUE TRUE TRUE TRUE
Это может или не может быть тем, что выwant.
Если вы используете совпадение с регулярными выражениями и хотите игнорировать регистр, вы также можете использовать конструкцию (?i)
для включения сопоставления без учета регистра и (?-i)
для выключения сопоставления без учета регистра:
D1 <- c('abc','aBc','Abc','ABc','aBC')
grepl('a(?i)bc',D1) # caseless matching on B and C
# [1] TRUE TRUE FALSE FALSE TRUE
grepl('a(?i)b(?-i)c',D1) # caseless matching only on B
# [1] TRUE TRUE FALSE FALSE FALSE