7

これは非常に初歩的な質問であることはわかっていますが、データフレームのリストをデータフレームに追加して、すべての data.frames がリスト内の同じレベルにある新しいリストを作成するにはどうすればよいですか?

私の試みのいくつか:

> 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

dfすべての が異なるデータ フレームであるふりをします。

次のように、df を innnerlist に追加し、4 つの dfs を含むリストを取得します。

> 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
4

2 に答える 2

5

dfリスト要素にしたい場合listは、data.frame が内部的にリストであるため、ラップする必要があります。例えば:

append(list(df), innerlist)
c(list(df), innerlist)
于 2012-10-25T09:41:36.090 に答える
4

お気づきのように、cはリストを結合するための正しい関数です。data.frame もリストですcが、data.frame 属性を削除し、ベクターを含むリストにドロップします。これを別のリストでラップすることで保護できます。

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
于 2012-10-25T09:42:08.590 に答える