8 Stimmen

Liste an eine Liste anhängen

Ich weiß, dies ist eine wirklich Noob-Frage, aber wie ich eine Liste von dataframes an einen Datenrahmen anhängen, um eine neue Liste zu bilden, mit allen data.frames auf der gleichen Ebene in der Liste?

Einige meiner Versuche:

> 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

Stellen Sie sich vor, dass alle df s sind unterschiedliche Daten-Rahmen.

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

> 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

7voto

Joshua Ulrich Punkte 167720

Wenn Sie wollen df ein Listenelement sein soll, müssen Sie es in list weil ein data.frame intern eine Liste ist. Zum Beispiel:

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

5voto

James Punkte 63228

Wie Sie erkannt haben, c ist die richtige Funktion, um Listen zu kombinieren. Ein data.frame ist zwar auch eine Liste, c entfernt das data.frame-Attribut und legt es in einer Liste ab, die einen Vektor enthält. Sie können diese Liste schützen, indem Sie sie in eine andere Liste einschließen:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X