如何在R中比较两个字符串?

blmhpbnm  于 2022-12-05  发布在  其他
关注(0)|答案(2)|浏览(297)

我在比较R中的两个字符串时遇到了麻烦。有什么方法可以做到吗?
就像在Java中有String.equals(AnotherString)一样,在R中有类似的函数吗?

ndh0cuux

ndh0cuux1#

其实很简单

s1 <- "string"
s2 <- "String"

# Case-sensitive check
s1 == s2

# Case-insensitive check
tolower(s1) == tolower(s2)

第一种情况下的输出为FALSE,第二种情况下的输出为TRUE。您也可以使用toupper()

laik7k3q

laik7k3q2#

您可以从stringr 1.5.0使用str_equal。它包含一个ignore_case参数:

library(stringr)
s1 <- "string"
s2 <- "String"

str_equal(s1, s2)
#[1] FALSE

str_equal(s1, s2, ignore_case = TRUE)
#[1] TRUE

str_equal使用Unicode rules来比较字符串,这在某些情况下可能是有益的:

a1 <- "\u00e1"
a2 <- "a\u0301"
c(a1, a2)
#[1] "á" "á"

a1 == a2
#[1] FALSE
str_equal(a1, a2)
#[1] TRUE

相关问题