2017-02-25 2 views
-3

Ich habe eine harte Zeit herauszufinden, warum Reihenfolge der Ebenen des Faktors ändern nach dem Lesen von CSV. Wenn ich an Daten arbeite, ändere ich immer die Reihenfolge der Ebenen nach Vorlage meines Berichts. Dann schreibe ich es in die CSV-Datei. Dann lese ich diese Datei erneut durch read.csv mit StringasFactor = False, oder StringasFactor = True, es spielt keine Rolle, die Reihenfolge der Ebenen des Faktors ändert sich wieder, es sieht nicht so aus wie beim ersten Mal, also muss ich einstellen wieder um Tabellen wie Vorlage zu machen. Es gibt ein Paket lesen CSV ohne Reihenfolge der Ebenen des Faktors zu ändern. Ich schätze.Auftragsstufen der Faktoren ändern sich nach Schreiben csv und lesen csv in R

+0

Warum schreiben Sie auf CSV anstatt als RDA speichern? – Elin

+0

Ich sollte die Datei in Rdata speichern – BIN

Antwort

2

Bestellung ist nicht in der CSV-Datei enthalten. Die Ebenen werden beim Import alphabetisch sortiert.

> xy <- data.frame(lvl = letters[1:5], num = rnorm(5)) 
> levels(xy$lvl) 
[1] "a" "b" "c" "d" "e" 
> factor(xy$lvl, levels = c(letters[5:1])) 
[1] a b c d e 
Levels: e d c b a 
> xy$lvl <- factor(xy$lvl, levels = c(letters[5:1])) 
> levels(xy$lvl) 
[1] "e" "d" "c" "b" "a" 
> write.table(xy, file = "test.txt", row.names = FALSE, col.names = TRUE, sep = ";") 
> read.table("test.txt", sep = ";", header = TRUE) 
    lvl   num 
1 a 0.20222642 
2 b -0.09334365 
3 c 0.45378860 
4 d -0.32057560 
5 e 0.74415174 
> xy2 <- read.table("test.txt", sep = ";", header = TRUE) 
> levels(xy2$lvl) 
[1] "a" "b" "c" "d" "e" 
Verwandte Themen