2017-03-09 4 views
0

Um R zu lernen, habe ich versucht, Daten (über Spam) in einer einfachen Textdatei zu importieren.erfolglos (unsichtbar?) Umwandlung in Datenrahmen

Ich habe die Tabellenfunktion verwendet und dann versucht, das entsprechende Objekt in einen Datenrahmen zu konvertieren, mit zwei Antworten auf this Frage.

Hier ist der Code.

file <- "./spam.data.txt" 

spamd <- read.table(file, sep = "" , header = F, stringsAsFactors= F) 
spamd <- as.data.frame(spamd) 
typeof(spamd) # list 

spamd <- read.table(file, sep = "" , header = F, stringsAsFactors= F) 
spamd <- as.data.frame.matrix(spamd) 
typeof(spamd) # list 

Warum ist es, dass in beiden Fällen, typeof() kehrt list? Warum nicht Datenrahmen?

Dank

+2

Sie müssen mehr über Datenstrukturen in R lernen. Überprüfen Sie 'Klasse (spamd)'. Beachten Sie, dass 'read.table' dokumentiert ist, um ein data.frame zurückzugeben. Keine Konvertierung notwendig, – Roland

Antwort

2

Datenrahmen sind wirklich nur Listen von Vektoren. Von Advanced R von Hadley:

Da ein data.frame eine S3-Klasse ist, spiegelt die Art der zugrunde liegenden Vektor verwendet, es zu bauen: die Liste. Um zu prüfen, ob ein Objekt ein Datenrahmen ist, verwenden Sie class() oder testen Sie explizit mit is.data.frame().

sollten Sie beachten, dass Aufruf length() deshalb auf einem Datenrahmen die Anzahl der Spalten zurückgibt, nicht die Anzahl der Zeilen. Versuchen Sie:

length(spamd) 
ncol(spamd) 
nrow(spamd) 
Verwandte Themen