sourcetip

R(루프)에서 리스트에 요소를 추가하는 방법

fileupload 2023. 7. 2. 20:55
반응형

R(루프)에서 리스트에 요소를 추가하는 방법

루프의 목록에 요소를 추가하고 싶습니다(정확히 몇 개인지는 모르겠습니다).

다음과 같이:

l <- list();
while(...)
   l <- new_element(...);

마지막에.l[1]내 첫 번째 요소가 될 거예요l[2]나의 둘째 등등.

어떻게 진행해야 하는지 아십니까?

다음을 사용하여 목록에 추가하면 안 됩니다.c매우 느린 코드를 생성할 수 있기 때문에 루프 내부에 있습니다.기본적으로 당신이 할 때.c(l, new_element)목록의 전체 내용이 복사됩니다.대신 인덱스별로 목록의 요소에 액세스해야 합니다.목록의 길이를 알고 있는 경우 다음을 사용하여 이 크기로 초기화하는 것이 가장 좋습니다.l <- vector("list", N)그렇지 않으면 일부 큰 숫자와 동일한 길이로 초기화할 수 있습니다(예: 반복 횟수에 상한이 있는 경우). 루프가 완료된 후 NULL이 아닌 요소를 선택하면 됩니다.어쨌든, 기본 요점은 목록 요소를 추적하고 그것을 사용하여 추가할 수 있는 색인이 있어야 한다는 것입니다.

i <- 1
while(...) {
    l[[i]] <- new_element
    i <- i + 1
}

자세한 내용은 패트릭 번즈의 The R Inferno(2장)를 참조하십시오.

다음은 루프의 벡터에 요소를 추가합니다.

l<-c()
i=1

while(i<100) {
    
    b<-i
    l<-c(l,b)
    i=i+1
}

언급URL : https://stackoverflow.com/questions/26508519/how-to-add-elements-to-a-list-in-r-loop

반응형