2013-08-30 3 views
1

나는 세 개의 개체를 만드는 100 시간마다 반복하는 루프는 예했습니다 :목록의 목록을 작성 반복적으로

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

나는 목록에서 이러한 개체를 저장하는 첫 번째 반복의 끝에서 :

myList<-list(a,b,c) 

myList<-list(a,b,c) 
: 동일한리스트에 저장하고 a b c 새로 만든 번째 반복 이전에 덮어 abc

목록을 덮어 쓰는 대신 새 목록에 abc을 추가하고 싶습니다.

오버로드 방지를 위해 각 반복마다 목록을 업데이트 할 수 있습니까?

누군가 도움을 줄 수 있습니까?

+0

루프 대신'lapply()'를 사용하십시오. – Andrie

+0

이 코드는 100 줄의 거대한 시뮬레이션이기 때문에 불가능합니다. 목록은 전체 시뮬레이션 결과를 저장합니다 – db001

+0

그래서? 여전히'lapply'를 사용할 수 있습니다. – Roland

답변

3

문제를 이해하면 100 개 목록을 저장해야합니다. 그렇다면 시작 부분에서;

myList<-vector("list",100) 

는 이제 100 개 슬롯이 비어있는 목록을 가지고있다. 각 루프가 끝나면 출력 목록을 올바른 슬롯에 할당하십시오. 그것은 반복을위한 것이다. 출력은 mylist[[34]]이다. myList의 각 항목은 그 자체로 결과 목록입니다.

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를 사용해야합니다.

+0

하지만 문제는 각 반복에서 이전 a, b, c를 덮어 쓰므로 문제가 어떻게 해결되는지 보지 못합니다. – db001

+1

이것이 필요한 작업을 수행하지 않으면 문제를 충분히 설명하지 못했을 것입니다. – Roland

+0

ok 질문을 편집했는데 이제는 더 명확 해 졌나요? – db001

관련 문제