18

非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)
4

2 に答える 2

1

はこれにXMLメソッドinsertEntitiesを使用しますが、そのメソッドは内部的なものです。したがって、将来のバージョンでもこのように動作するという保証はありませんので、自己責任で使用してください。

現在、コードは次を使用して実行できます

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

data.frame の代わりに名前付きリストを使用すると、エレガントな感じがしますが、物事の核心は変わりません。内部では、コードとほぼ同じ方法でinsertEntities呼び出します。gsub

お使いの環境で数値 HTML エンティティが有効な場合は、おそらくすべてのテキストを使用するものに変換し、utf8ToInt安全に印刷可能な ASCII 文字をエスケープされていない形式に戻すことができます。これにより、エンティティの辞書を維持する手間が省けます。

于 2012-10-23T22:06:25.883 に答える