在R中将字符转换为html

前端之家收集整理的这篇文章主要介绍了在R中将字符转换为html前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
将包含非ASCII字符的字符(向量)转换为html时,R中的首选方式是什么?我会像例如转换
"ü"

"ü"

我知道这可以通过巧妙地使用gsub(但是有人会一劳永逸地使用它),我认为包R2HTML将会这样做,但是它并没有。

编辑:这是我最后使用的显然可以通过修改字典来扩展:

char2html <- function(x){
  dictionary <- data.frame(
    symbol = c("ä","ö","ü","Ä","Ö","Ü","ß"),html = c("&auml;","&ouml;","&uuml;","&Auml;","&Ouml;","&Uuml;","&szlig;"))
  for(i in 1:dim(dictionary)[1]){
    x <- gsub(dictionary$symbol[i],dictionary$html[i],x)
  }
  x
}

x <- c("Buschwindröschen","Weißdorn")
char2html(x)

解决方法

XML使用一个insertEntities方法,但该方法是内部的。因此,您可能会自行承担风险,因为不会保证在将来的版本中保持运行。

现在,您的代码可以使用

char2html <- function(x) XML:::insertEntities(x,c("ä"="auml","ö"="ouml",…))

使用命名列表而不是data.frame感觉很优雅,但不会改变核心的东西。在引擎盖下,insertEntities以与代码相同的方式调用gsub。

如果数字HTML实体在您的环境中有效,那么您可能会将所有文本转换为使用utf8ToInt的文本,然后将安全的可打印ASCII字符转回未转义的形式。这将为您节省您的实体维护字典的麻烦。

猜你在找的HTML相关文章