2012-10-25 28 views
5

Ich weiß, das ist eine wirklich noob Frage, aber wie füge ich eine Liste von Datenrahmen an einen Datenrahmen an, um eine neue Liste zu bilden, mit allen data.frames auf der gleichen Ebene in der Liste? Einige meiner VersucheListe an eine Liste anhängen

:

> df <- data.frame(time=1:5) 
> df 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 
> innerlist <- list(df,df,df) 
> innerlist 
[[1]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[2]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[3]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

> outerlist <- list(df,innerlist) 
> outerlist 
[[1]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[2]] 
[[2]][[1]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[2]][[2]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[2]][[3]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 


> outerlist2 <- c(df,innerlist) 
> outerlist2 
$time 
[1] 1 2 3 4 5 

[[2]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[3]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[4]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

> outerlist3 <- cbind(df,innerlist) 
> outerlist3 
    time time time time 
1 1 1 1 1 
2 2 2 2 2 
3 3 3 3 3 
4 4 4 4 4 
5 5 5 5 5 

Pretend, dass alle df s unterschiedliche Daten-Frames sind.

Ich möchte df anhängen, innnerlist und eine Liste mit 4 dfs erhalten, wie:

> outerlistmagic <- magic(df, innerlist) 
> outerlistmagic 
[[1]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[2]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[3]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[4]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

Antwort

4

Wenn Sie df wollen ein Listenelement zu sein, müssen Sie es in list weil ein Daten wickeln. Rahmen ist eine interne Liste. Zum Beispiel:

append(list(df), innerlist) 
c(list(df), innerlist) 
+0

Ah, super, danke! Und du hast warum erklärt, so verstehe ich es jetzt. –

4

Wie Sie erkennen, ist c die korrekte Funktion Listen zu kombinieren. Während ein data.frame auch eine Liste ist, entfernt c das Attribut data.frame und löscht es in eine Liste, die einen Vektor enthält. Sie können dies schützen, indem Sie es in eine andere Liste einfügen:

c(list(df),innerlist) 
[[1]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[2]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[3]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[4]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 
Verwandte Themen