2017-03-29 3 views
1

Ich habe einen Datenrahmen, der die Mehrheit der Spalten als numerisch enthält. Dann benutze ich diesen Befehl, um CSV-Datei zu schreibenWie können write.csv und read.csv das Datenformat beibehalten?

write.csv(df, "mydf.csv", row.names=FALSE, na="") 

dann später las ich in der Datei mit:

df = read.csv("mydf.csv", header = F, sep = ",", stringsAsFactors=F,dec=".") 

Dann, als ich das Datenformat

sapply(df, class) 

mit überprüfte all Spalten ändern sich in Zeichen. Wenn ich keine StringsAsFactors = F, setze, ändern sich alle Spalten in factor. Ich könnte später Spalten manuell in numerische ändern. Ich frage mich nur, ob es eine Methode gibt, mit der ich das Datenformat zumindest für die Majoritätsspalten erhalten könnte, während ich die CSV-Datei schreibe oder lese. Gibt es bessere Lösungen?

Antwort

2

Standardmäßig enthält write.csv Header, aber wenn Sie sie importieren, sagen Sie R, dass es keine Header gibt. Es ist wahrscheinlich, dass diese Header nicht numerisch sind, was den Wechsel zum Zeichen auslöst. Also entweder die Header im write.csv() ausschalten oder header=TRUE im read.csv()

+0

set header = TRUE setzen. Das funktioniert. Vielen Dank. – newleaf

Verwandte Themen