使小写等于R中的大写字母

时间:2015-02-24 22:42:52

标签: r string compare case-insensitive

我需要检查两个表之间的2个字符串是否相同。问题是表1是小写字母,表格2是大写字母。我需要在 R 中创建此函数,因此它必须给出一个TRUE值,例如在这种情况下:

    "this is a string" == "THIS IS A STRING"

任何人都可以帮助我吗?谢谢你的时间!!!

1 个答案:

答案 0 :(得分:6)

您可以使用stri_cmp_equiv()包中的stringi功能。它测试两个字符串的规范等价,并且是与语言环境相关的。另外,可以调整ICU的Collat​​or以便例如比较是不区分大小写的。

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