【问题标题】:Make lowercase equal to capital letters in R使小写等于R中的大写字母
【发布时间】:2015-02-24 22:42:51
【问题描述】:
我需要检查 2 个表之间的 2 个字符串是否相同。问题是表1是小写的,表2是大写的。我需要在 R 中创建这个函数,所以它必须给出一个 TRUE 值,例如在这种情况下:
"this is a string" == "THIS IS A STRING"
有人可以帮助我吗?谢谢你的时间!!!
【问题讨论】:
标签:
r
string
compare
case-insensitive
【解决方案1】:
您可以为此使用 stringi 包中的 stri_cmp_equiv() 函数。它测试两个字符串的规范等效性,并且依赖于语言环境。此外,ICU 的 Collator 可以进行调整,例如,比较不区分大小写。
library(stringi)
stri_cmp_equiv("this is a string", "THIS IS A STRING", strength=2)
## [1] TRUE
stri_cmp_equiv("hladn\u00FD", "hladny", strength=1, locale="sk_SK") # hladný
## [1] TRUE
stri_cmp_equiv(stri_trans_nfkd("\u0105"), "\u105") # "ą"
## [1] TRUE
stri_cmp_equiv("\ufb00", "ff", strength=2) # "ff"
## [1] TRUE
stri_cmp_equiv("G\u00e4rtner", "Gaertner", locale="de_DE@collation=phonebook", strength=1L) # "Gärtner"
## [1] TRUE
或者,如果它对您的需求来说太重了,您可以 - 正如@docendodiscimus 建议的那样,测试是否
tolower("a string") == tolower("A STRING")
## [1] TRUE