2016-07-17 7 views
0

ich einen Datensatz aus CSV-lese-Datei wie folgt:Fehler beim StringsAsFactors mit

df1=read.csv("train.csv",header=TRUE,stringsAsFactors=FALSE) 

Und ich diese Werte der ersten Spalte in Datenrahmen zu einem anderen Datenrahmen wie unten Kopieren:

link<-data.frame((df1[,1])) 

Wenn ich versuche, auf die Werte in Verbindung zuzugreifen, ist es in Form von Faktoren:

'data.frame': 12 obs. von 1 Variabel: $ X.df1 ... 1 ..: Faktor w/12 Ebene "http://blog.cloudera.com/blog/2014/09/apache-kafka-for-beginners/", ..: 9 10 8 12 7 6 5 4 1 2 ...

Selbst obwohl ich StringsAsFactors=FALSE verwendet habe, bin ich verwirrt, warum diese Werte in Form von Faktoren anstelle von Zeichen gespeichert wurden. Bitte lassen Sie mich wissen, wie Sie diese Werte in Form von Faktoren speichern können.

Antwort

3

Die Standardeinstellung data.frame() ist stringsAsFactors=TRUE. Auch wenn Sie df1 mit read.csv() unter Verwendung von stringsAsFactors=FALSE lesen, werden die Faktoren wieder eingefügt, indem data.frame() verwendet wird. Es ist in diesem Fall nicht erforderlich, data.frame() aufzurufen. Sie können einfach

link <- df1[,1,drop=FALSE] 
verwenden
3

Sie können überprüfen, dass df1[, 1] ein Zeichenvektor ist. Aber dann brauchst du noch eine stringsAsFactors = FALSE innerhalb data.frame(df1[, 1]). Lesen Sie weiter unter ?data.frame; standardmäßig werden auch Zeichenfolgen als Faktoren neu codiert.

Warum nicht einfach link <- df1[1]?