1

3 つのオブジェクトを作成するたびに 100 回繰り返すループがあります。

a<-TRUE
b<-1:20
c<-matrix(data=NA,ncol=2,nrow=10)

最初の繰り返しの最後に、これらのオブジェクトをリストに保存します。

myList<-list(a,b,c)

2 番目の反復で newa bcが作成され、同じリストに保存され、前の が上書きされますabc

myList<-list(a,b,c)

abcリストを上書きする代わりに、新しいリストを既存のリストに追加したいと思います。

上書きを避けるために、反復ごとにリストを更新できますか?

誰か助けてくれませんか?

4

2 に答える 2

8

私が問題を理解した場合、100 個のリストを保存する場所が必要です。もしそうなら、最初にそうしてください。

myList<-vector("list",100)

これで、100 個のスロットを持つ空のリストができました。各ループの後、出力リストを正しいスロットに割り当てます。つまり、反復 34 で出力を に入れますmylist[[34]]。の各エントリは、myListそれ自体が結果のリストになります。

于 2013-08-30T14:20:44.227 に答える
2

これを試して:

fun <- function() {
  #insert here as much code as you desire
  a<-TRUE
  b<-1:20
  c<-matrix(data=NA,ncol=2,nrow=10)

  list(a, b, c)
} 

replicate(100, fun(), simplify=FALSE)

関数が反復に何らかの形で依存している場合は、lapply代わりに使用する必要があります。

于 2013-08-30T14:04:34.783 に答える