2012-10-05 21 views
5

を作成するためのリストを複製します私は後で記入する空リストをたくさん作成しています(次のインデックスを参照してリストを拡張することはできますが、2つのインデックスにインデックスを付けるときは機能しません)。は、私は、以下の(ネスト)構造を持つリストを作成しようとしていますリストの-リスト

私はrepがこのために働いたと考えましたが、それは見られません。言い換えれば

> str(rep(fred, 5)) 
List of 10 
$ happy: int [1:10] 1 2 3 4 5 6 7 8 9 10 
$ name : chr "squash" 
$ happy: int [1:10] 1 2 3 4 5 6 7 8 9 10 
$ name : chr "squash" 
$ happy: int [1:10] 1 2 3 4 5 6 7 8 9 10 
$ name : chr "squash" 
$ happy: int [1:10] 1 2 3 4 5 6 7 8 9 10 
$ name : chr "squash" 
$ happy: int [1:10] 1 2 3 4 5 6 7 8 9 10 
$ name : chr "squash" 

が、それはリストをフラット:返す

fred <- list(happy = 1:10, name = "squash") 
rep(fred, 5) 

?repは、次の例を示します。

同様に失敗したlist(rep(fred,5))も試しました。

リストのリストを複製するにはどうすればよいですか?

答えて

8

私はあなたがあなたの担当者の前に巣にしたい、これは担当者の行動に関係していると思う:

rep(list(fred),5) 

str出力:

List of 5 
$ :List of 2 
    ..$ happy: int [1:10] 1 2 3 4 5 6 7 8 9 10 
    ..$ name : chr "squash" 
$ :List of 2 
    ..$ happy: int [1:10] 1 2 3 4 5 6 7 8 9 10 
    ..$ name : chr "squash" 
$ :List of 2 
    ..$ happy: int [1:10] 1 2 3 4 5 6 7 8 9 10 
    ..$ name : chr "squash" 
$ :List of 2 
    ..$ happy: int [1:10] 1 2 3 4 5 6 7 8 9 10 
    ..$ name : chr "squash" 
$ :List of 2 
    ..$ happy: int [1:10] 1 2 3 4 5 6 7 8 9 10 
    ..$ name : chr "squash" 
+1

それは私だけですか、それとも恐ろしく非直感的ですか?ソリューションに感謝します。 –

+2

@ AriB.Friedman - リストが実際にあることを念頭に置いて、 'rep(1:2,5)'と 'rep(list(1:2)、5) 'を比較すると意味があります**ベクトルの一種。それは役に立ちますか? –

+0

@ JoshO'Brienええ、それは実際にはあります。 –

4

あなたはreplicateを使用することができます。

l <- replicate(5, list(a=NA,b=NA), simplify=FALSE) 
+0

既存のオブジェクトの構造を複製する方法を知っていますか?例えば。私はいくつかのレベルの入れ子を含むリストを持っています。入れ子になった各要素に同じ名前を使用して、結果を格納するための空のバージョンが必要です。多分、構造体とその要素名だけを残して、オブジェクト全体からすべての_data_を削除する方法がありますか? –