R의 목록에 요소 추가

Gustavo du Mortier 2023년1월30일
  1. length 함수를 사용하여 R의 목록에 추가
  2. 목록에 대한 상한 설정
R의 목록에 요소 추가

R의 목록에 임의의 수의 요소를 추가하기 위해 루프를 사용하는 방법에는 여러 가지가 있습니다. 일부는 요소 수가 많을 때 느려질 수 있습니다. 이 튜토리얼은 R 루프의 목록에 요소를 추가하는 가장 효율적인 방법을 소개합니다.

이러한 알고리즘을 구현하는 일반적인 방법은while 루프를 만들고 루프 내에서c (연결) 명령을 사용하는 것입니다. 각 반복 내에서c 함수를 사용하여 요소를 추가합니다. 이 예에서는 색인 변수가 10,000에 도달 할 때까지 값 (i*3)이 목록에 추가됩니다.

i <- 1
mylist <- c()

while (i<10) {
    mylist <- c(mylist, i*3)
    i <- i+1
}

cat(mylist)

출력:

3 6 9 12 15 18 21 24 27

이전 예제의 문제점은 연결이 실행될 때마다 전체 목록이 복사된다는 것입니다. 대용량 데이터 세트로 작업 할 때 모든 요소를 추가하는 데 걸리는 시간이 엄청날 수 있습니다.

length 함수를 사용하여 R의 목록에 추가

루프 내의 목록에 임의의 수의 요소를 추가하는보다 효율적인 방법은 각 반복에서 length함수를 사용하는 것입니다. length 함수를 사용하면 목록의 요소 수를 가져 와서 각 새 요소를 마지막 요소 뒤에있는 색인에 할당 할 수 있습니다.length(mylist) + 1.

아래 예제는 이전 예제와 동일하지만 더 효율적입니다.

i <- 1
mylist <- c()

while (i<10) {
    mylist[[(length(mylist) + 1)]] <- i*3
    i <- i+1
}

cat(mylist)

출력:

3 6 9 12 15 18 21 24 27

목록에 대한 상한 설정

루프가 반복되는 횟수를 미리 알고 있다면 요소 목록을 늘리는 대신 고정 길이의 벡터를 정의하고 모든 요소를 보유하는 데 사용할 수 있습니다. 예를 들어 루프가 10,000 번 반복된다는 것을 알고 있다면 다음과 같이 벡터를 초기화 할 수 있습니다.

mylist <- vector("list", 10000)

그런 다음 for루프를 사용하고 색인별로 각 요소의 값을 설정할 수 있습니다.

i <- 1
for (i in 1:10000) {
    mylist[[i]] <- i*3
}

반복 횟수를 모르지만 상한이있는 경우이 상한으로 벡터를 정의 할 수 있습니다. 나중에 루프 실행이 완료되면 널이 아닌 요소 만 선택할 수 있습니다. 예를 들어 루프가 10,000 회 이상 반복되지 않는다는 것을 알고 있다면 요소를 모두 사용하지 않더라도 10,000 개의 요소로 벡터를 초기화 할 수 있습니다.

관련 문장 - R Loop