将ASCII规范化为R中的UTF-8



我正在尝试将一个数据帧转换为rdf以在中编辑门徒不幸的是,数据帧中的ASCII代码在打印字符串时是不可见的,最著名的是u0020,它是一个空间的代码。

x <- "u0020". 
x
> " "

CCD_ 2在搜索模式时工作良好,但当打印结果。

match <- 
grep(pattern = "u0020", x = x, value = TRUE)
match
> " "

问题是,这些代码正在抛弃Protege,我正试图将它们规范化为基本字符,如u0020" ",但我找不到任何正则表达式来捕捉这些字符并用单个非代码字符替换它们。正则表达式模式[^ -~]不会捕获这些值,否则我对这些字符串完全视而不见。如何规范R中的这些代码?

就我个人而言,我只想使用stringi库替换文件中的所有unicode。

给定一个看起来像的CSV文件test.csv

col1,col2,col3
u0020, moretext, evenmoretext

首先将其加载为数据帧

> frame <- read.csv("test.txt", encoding="UTF-8")
> frame
col1      col2          col3
1 \u0020  moretext  evenmoretext

接下来,找到所有要替换的事件,并使用stri_unescape_unicode将其转换为Protege喜欢的内容。

> frame$col1
[1] "\u0020"
frame$col1 <- stri_unescape_unicode(frame$col1)
> frame$col1
[1] " "

一旦被替换,您应该能够在没有unicode条目的情况下将csv写回磁盘。

最新更新