R:两个看似理想的字符串是不相等的

R:两个看似理想的字符串是不相等的,r,string,encoding,character-encoding,character,R,String,Encoding,Character Encoding,Character,上下文:我有一个很大的数据集,可以读入各种.csv表单。对于一个字符变量,我想做一个因子。该因子具有非唯一级别(我猜它们是唯一的,但在打印时似乎并不唯一) 我试过了 > unique(tt$Originating.Body)[1] [1] "Court (First Section)" > unique(tt$Originating.Body)[14] [1] "Court (First Section)" > unique(tt$Ori

上下文:我有一个很大的数据集,可以读入各种.csv表单。对于一个字符变量,我想做一个因子。该因子具有非唯一级别(我猜它们是唯一的,但在打印时似乎并不唯一)

我试过了

> unique(tt$Originating.Body)[1]
[1] "Court (First Section)"
> unique(tt$Originating.Body)[14]
[1] "Court (First Section)"
> unique(tt$Originating.Body)[1] == unique(tt$Originating.Body)[14]
[1] FALSE
> "Court (First Section)" == "Court (First Section)"
[1] TRUE

谁能向我解释一下这种行为吗?我查看了match的帮助,但我并没有真正理解它。另外,我尝试只使用UTF-8,如果使用stringi::stri_enc_isutf8(),它将为我的所有字符串返回
TRUE
。我正在windows计算机上使用
“LC\u COLLATE=German\u Switzerland.1252;LC\u CTYPE=German\u Switzerland.1252;LC\u MONETARY=German\u Switzerland.1252;LC\u NUMERIC=C;LC\u TIME=German\u Switzerland.1252”
。不幸的是,我没有找到一个可重复的例子。

看起来好像
tt$origing.Body
可能是一个因素,在这种情况下,比较将在因素水平之间,而不是因素标签之间。也许您可以尝试使用
as.character
将因子转换为字符,然后再次转换以去除相同的标签。可能其中一个包含一个奇怪的unicode空格,在这种情况下,您可以尝试类似于
stringr::str_replace_all(x,“\\s,”)
的方法,并希望它能捕捉到它们。