2017-07-06 5 views
2

Ich versuche, mehrere SPSS-Dateien in R zu lesen, die Cyrillic text enthalten. Alle Dateien sind in Cyrillic text. Wenn ich die meisten davon in R lese, sagt die Konsole "re-encoding from CP1251". Wenn ich jedoch einige der Dateien lese, auch in Cyrillic text, heißt es "re-encoding from CP1252", was meiner Meinung nach eine lateinische Schrift ist. Die CP1251 Dateien lesen ohne Probleme in R ein. Die CP1252 Dateien werden jedoch in R zu Kauderwelsch. Ich habe versucht, die foreign, haven und hmisc Pakete zum Lesen in den SPSS-Dateien und keiner hat funktioniert. Ich habe auch versucht, einschließlich reencode='utf-8'. Wenn ich das tue, wird der kyrillische Text alles zu NA. Das Problem tritt auf, wenn ich in R oder RStudio arbeite.Spss-Datei mit Kyrillisch in R lesen

x1<- read.spss("cp1251_file.sav", to.data.frame = T) #1251 file reads in fine 

x2<- read.spss("cp1252_file.sav", to.data.frame = T) #1252 file becomes gibberish 

x2<- read.spss("cp1252_file.sav", to.data.frame = T, reencode='utf-8') #Cyrillic text in CP1252 file becomes NA 

Danke für Ihre Hilfe.

+0

für mich für deutsche Umlaute (ÄÜÖ) mit einer Kombination der folgenden Werke: 'Optionen (encoding = "UTF-8"); spssfile <- as.data.set (spss.system.file ('yourfiles.sav')); spssfile <- Iconv (spssfile, von = "UTF-8", bis = "UTF-8") 'Können Sie das überprüfen? – Jan

+0

Diese Frage/Antworten können auch hilfreich sein: https://stackoverflow.com/questions/3136293/read-spss-file-into-r?rq=1 – Jan

+0

Vielen Dank. Ich habe das versucht und jetzt bekomme ich einen Fehler, wenn ich versuche, in einen Datenrahmen zu konvertieren. spssfile <- as.data.set (spss.system.file ('file.sav', use.value.labels = FALSE)); spssfile <- Iconv (spssfile, von = "UTF-8", bis = "UTF-8"); df <- as.data.frame (spssfile, stringsAsFactors = F); Fehler: Fehler in as.factor (x): doppelte Etiketten – ab27

Antwort

0

Sieht aus wie es funktioniert, wenn ich das memisc Paket verwende und ich R erkläre, dass die Datei CP1251 ist, obwohl es denkt, dass es CP1252 ist, wenn Sie read.spss verwenden. Dank !:

df <- spss.system.file("file.sav") df <- Iconv(df,from="CP1251",to="UTF-8") df1<-as.data.frame(as.data.set(df))