R无法识别的字符串值
我有一个字符串向量,其中一些值是用越南语写的,用UTF-8编码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ươ
> 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中将编码显式设置为“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"