R无法识别的字符串值

R无法识别的字符串值,r,R,我有一个字符串向量,其中一些值是用越南语写的,用UTF-8编码 > so_wrong [1] "Thiết bị & dịch vụ" "Quản lý" [3] "Hãng" "Thời tiết" [5] "Lý do khác" "Tàu bay về muộn" [7] "Kỹ thuật" "Thươ

我有一个字符串向量,其中一些值是用越南语写的,用UTF-8编码

> so_wrong
 [1] "Thiết bị & dịch vụ"     "Quản lý"               
 [3] "Hãng"                   "Thời tiết"             
 [5] "Lý do khác"             "Tàu bay về muộn"       
 [7] "Kỹ thuật"               "Thương mại"            
 [9] "Khai thác"              "Quản lý, điều hành bay"
[11] " "                     
我想删除另一个包含最后两个值的向量:“Quản lý,điều hánh bay“和”。但是R不认识他们

> any(so_wrong == " ")
[1] FALSE
> any(so_wrong == "Quản lý, điều hành bay")
[1] FALSE
…即使这些命令中输入的值与向量中的值完全相同(我复制粘贴了它们)。另一方面,这项工作:

> any(so_wrong == so_wrong[11])
[1] TRUE
问题是什么?如何解决/解决

编辑:编码

> Encoding(so_wrong)
 [1] "UTF-8"  "UTF-8"  "latin1" "UTF-8"  "UTF-8"  "UTF-8"  "UTF-8" 
 [8] "UTF-8"  "latin1" "UTF-8"  "UTF-8" 

编辑:我将矢量保存到csv并按下它

我复制了有问题的字符串(“Quản lý,điều hánh bay”)到R,分配给一个对象,检查逻辑相等性,结果正常

> so_wrong <- "Quản lý, điều hành bay"
> so_wrong == "Quản lý, điều hành bay"
[1] TRUE
你也可以试试看

  • 如果从文件中读取,则可以设置输入的编码。从read.table的手册页:
read.table(文件,header=FALSE,sep=“”,quote=“\””, dec=“.”,数字=c(“允许损失”、“警告损失”、“无损失”), row.names,col.names,as.is=!stringsAsFactors, na.strings=“na”,colClasses=na,nrows=-1, skip=0,check.names=TRUE,fill=!blank.lines.skip, strip.white=FALSE,blank.lines.skip=TRUE, comment.char=“#”, allowEscapes=FALSE,flush=FALSE, stringsAsFactors=默认值。stringsAsFactors(), fileEncoding=“”,encoding=“未知”,文本,skipNul=FALSE)


因此,您可以在read.table中将编码显式设置为“utf-8”。

使用charToRaw检查原始字节。最后一个向量中可能有多个空格,第十个向量周围可能没有显示额外空格。还可以使用trimws在“值给我结果c2 a0。我应该从中了解什么?您还可以使用从R到八进制转储的系统调用,通过此命令查看对象中是否存在任何非ascii字符:
system(sprintf(“echo%s | od-c”,所以错误[11])
我已经更改了UTF-8和native.enc之间的编码(我认为这是R中的默认编码?)但结果仍然是一样的。我从一个docx文件中读到这个,我写了一个函数,基于此,但我认为我的函数不是问题所在,因为它与值本身无关。请执行编码(x)函数,其中x是包含字符串的对象?输出是什么?顺便说一下,我正在检查xml2包的编码选项。从read_xml的手册页:read_xml(x,encoding=“”,…,as_html=FALSE,options=“NOBLANKS”)。如果您使用了该选项,您是否在函数中设置了编码?我已经用您的注释编辑了该问题,并在我的文件中添加了一个csv。那么
getOption(“编码”)
> getOption("encoding")
[1] "native.enc"