Während R intern gut mit Unicode-Zeichen zu arbeiten scheint, kann ich keinen Datenrahmen in R mit solchen UTF-8 Unicode-Zeichen ausgeben. Gibt es eine Möglichkeit, dies zu erzwingen?Schreibe UTF-8-Dateien aus R
data.frame(c("hīersumian","ǣmettigan"))->test
write.table(test,"test.txt",row.names=F,col.names=F,quote=F,fileEncoding="UTF-8")
Die Ausgabetextdatei lautet:
hiersumian <U+01E3>mettigan
Ich bin mit R-Version 3.0.2 in einer Windows-Umgebung (Windows 7).
EDIT
Es ist in den Antworten vorgeschlagen, dass R die Datei korrekt in UTF-8, und dass das Problem liegt bei der Software um die Datei anzuzeigen Ich verwende schreibt. Hier ist ein Code, wo ich alles in R mache. Ich lese in einer Textdatei, die in UTF-8 codiert ist, und R liest sie richtig. Dann schreibt R die Datei in UTF-8 und liest sie wieder ein, und nun sind die korrekten Unicode-Zeichen verschwunden.
read.table("myinputfile.txt",encoding="UTF-8")->myinputfile
myinputfile[1,1]
write.table(myinputfile,"myoutputfile.txt",row.names=F,col.names=F,quote=F,fileEncoding="UTF-8")
read.table("myoutputfile.txt",encoding="UTF-8")->myoutputfile
myoutputfile[1,1]
Console Ausgabe:
> read.table("myinputfile.txt",encoding="UTF-8")->myinputfile
> myinputfile[1,1]
[1] hīersumian
Levels: hīersumian ǣmettigan
> write.table(myinputfile,"myoutputfile.txt",row.names=F,col.names=F,quote=F,fileEncoding="UTF-8")
> read.table("myoutputfile.txt",encoding="UTF-8")->myoutputfile
> myoutputfile[1,1]
[1] <U+FEFF>hiersumian
Levels: <U+01E3>mettigan <U+FEFF>hiersumian
>
Werke für mich (R-devel auf Ubuntu 12.04) beim Betrachten der Datei im Terminal, vi oder emacs. –
@BenBolker Bedeutet dies, dass dieses Problem spezifisch für die Windows-Version von R ist? – Sverre
Zur Verdeutlichung: Dies ist ein Windows-spezifisches Problem. Unter OS X ist das Ergebnis nachweislich korrekt. 'Datei test.txt' antwortet mit' test.txt: UTF-8 Unicode-Text'. Ein Hexdump zeigt die korrekten Bytes an. Gut geschriebene Frage. –