Невозможно отключить чувствительность к регистру ==, но принуждение обоих векторов символов к верхнему регистру, а затем проверка на равенство составляет одно и то же:
toupper(A1)
[1] "A" "A" "A" "A" "A" "A" "A"
toupper(A1)==toupper(B1)
# [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE
Ответ 2
Как сказал Джош О'Брайен. Чтобы расширить бит на несоответствие в 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
Это может быть или не быть тем, что вы хотите.
В боковом столбце, если вы соглашаетесь с регулярными выражениями и хотите проигнорировать случай, вы также можете использовать конструкцию (?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