Ich habe eine Datenbank mit den Namen der Premiership Fußballer, die ich in R (3.02) lese, aber ich stoße auf Schwierigkeiten, wenn es um Spieler mit fremden Zeichen im Namen geht (Umlaute, Akzente etc.). Der folgende Code veranschaulicht dies:Lesen von fremden Zeichen
PlayerData<-read.table("C:\\Users\\Documents\\Players.csv",quote=NULL, dec = ".",,sep=",", stringsAsFactors=F,header=T,fill=T,blank.lines.skip = TRUE)
Test<-PlayerData[c(33655:33656),] #names of the players here are "Cazorla" "Özil"
Test[Test$Player=="Cazorla",] #Outputs correct details
Test[Test$Player=="Ozil",] # Can not find data '0 rows> (or 0-length row.names)'
<
#Example of how the foreign character is treated:
substr("Özil",1,1)
[1] "Ã"
substr("Özil",1,2)
[1] "Ö"
substr("Özil",2,2)
[1] "
substr("Özil",2,3)
[1] "z
Ich habe versucht, die Zeichen zu ersetzen, wie es hier beschrieben: R: Replacing foreign characters in a string, aber da die Zeichen mit Akzent in meinem Beispiel erscheinen als zwei seperate zu lesenden Zeichen Ich glaube nicht, es funktioniert.
Ich wäre dankbar für Vorschläge oder Problemumgehungen.
Die Datei steht zum Download zur Verfügung here.
Konnten Sie die zwei Zeilen Ihrer CSV irgendwo im Netz setzen? Vielleicht kann 'iconv' helfen. –
Dies erfordert eine viel längere Antwort (die meisten außerhalb meiner Expertise), aber versuchen Sie alles in UTF-8 zu konvertieren: 'Test $ Player <- iconv (Test $ Player, zu = 'UTF-8')'. Überprüfen Sie, ob die Indizierung wie erwartet funktioniert. Wenn Sie keine Kodierung erzwingen, werden Zeichenketten abhängig von Ihrem Systemgebietsschema interpretiert (die von Ihnen angegebenen Beispiele funktionierten wie erwartet auf meinem System). – ilir