2012-08-16 22 views
13

Wie kann ich einen Datenrahmen zu einer Liste in R hinzufügen? Ich versuche den folgenden Code.R - Datenrahmen zur Liste hinzufügen

Zunächst erstelle ich einen Datenrahmen aus einer CSV-Datei (jede CSV-Datei tun)

> a <- read.csv(csvFile) 
> class(a) 
[1] "data.frame" 

so, ich habe einen Datenrahmen genannt "a". Jetzt habe ich eine Liste mit einem Zeichen Elemente zu erstellen, wie unten gezeigt

> b <- list("hello world") 

Nun, hänge ich meinen Datenrahmen „a“ in die Liste b wie unten

> b[[length(b)+1]] <- a 
> class(b) 
[1] "list" 
> length(b) 
[1] 2 

so weit, so gut gezeigt. Liste b hat jetzt 2 Einträge (die Zeichenfolge "Hallo Welt" und der Datenrahmen a). Nun das Stück, das mir ein Rätsel ist der folgende Code

> class(b[2]) 
[1] "list" 

warum Klasse (b) [2] als Liste zeigt sich anstelle eines Datenrahmens? Ich möchte meinen Datenrahmen "a" zu der Liste "b" hinzufügen können, ohne implizit in eine Liste umgewandelt zu werden. Kann mir jemand helfen, das zu verstehen?

+2

Dies ist eines der besten Beispiele, die ich zwischen "[" und "[['. Sie machen verschiedene Dinge mit Listen. – joran

+1

Beachten Sie, wie Sie '[<-' verwenden müssen, um das Element festzulegen? Das ist ein Hinweis. ;-) –

Antwort

15

Diese in ?"[" dokumentiert ist (oder ?Extract), in der "Recursive (list-like) Objekte" -Abschnitt (Hervorhebung hinzugefügt):

Indexing von '[' ist ähnlich atomic Vektoren und Selects eine Liste von die angegebenen Elemente.

Beide '[' 'und' $ 'wählen Sie ein einzelnes Element der Liste.

Seit b[2] kehrt eine Liste, möchten Sie [[ verwenden, das heißt b[[2]].

Verwandte Themen