R의 rep(): 복제 함수 디코딩

게시 됨: 2020-06-15

R에서 rep에 대해 이야기하기 전에 반복이 무엇인지 알아야 합니다. 반복이라는 용어는 반복을 의미합니다. 대부분의 다른 프로그래밍 언어와 마찬가지로 전통적인 루핑 또는 반복은 R의 핵심 측면입니다.

일반 루프는 데이터 관리에 대한 효율적인 접근 방식이지만 반복이 메모리와 시간 소모적이라는 유일한 이유 때문에 비용이 많이 듭니다. 좋은 대안은 반복과 동일한 목표를 달성할 수 있는 벡터화된 방법을 사용하는 것입니다. rep() 함수는 그러한 벡터화된 루핑 함수 중 하나의 멤버입니다.

목차

rep() 함수는 무엇입니까?

간단히 말해서 R 의 rep 또는 rep() 함수는 숫자 값, 텍스트 또는 벡터 값을 특정 횟수만큼 복제합니다. rep() 함수는 R 기본 패키지의 apply() 함수 제품군의 구성원입니다. apply() 패밀리에는 배열, 행렬, 데이터 프레임 및 목록의 데이터를 반복적으로 조작하는 데 사용되는 함수가 포함되어 있습니다.

apply() 함수는 배열, 행렬 또는 입력 목록에 대해 작동하고 선택적 인수가 있는 명명된 함수를 적용하기 위해 루프 구성의 사용을 피합니다. 호출된 함수는 집계 함수, 변환 함수 또는 배열, 벡터, 목록 및 행렬과 같은 벡터화된 함수일 수 있습니다. 함수에 대해 자세히 알아보려면 데이터 과학 과정을 확인하세요.

더 읽어보기: Python의 데이터 프레임: Python 심층 자습서

벡터화된 계산 대 반복

벡터화된 방법은 시퀀스의 개별 요소에서 작동하는 대신 모든 벡터 구성요소에서 동시에 작동합니다. 따라서 벡터화된 계산은 항상 더 빠른 결과를 가져옵니다.

벡터화된 계산의 속도를 설명하기 위해 큰 벡터 생성을 위한 for() 루프의 경과 시간을 결정하는 예를 사용합니다. 예에서 각 요소는 1에서 N까지(여기서 N = 10,000,000) 증분 누적 합계로 순차적으로 계산됩니다. 속도 테스트를 통해 for() 루프 반복과 벡터화된 함수를 비교합니다.

원천

속도 테스트 결과를 비교하면 벡터화된 계산(속도 테스트 2)에 대한 경과 시간이 for() 루프보다 훨씬 빠릅니다. 반복 루프의 한 패스에 걸리는 시간 동안 벡터화된 계산은 278번 반복될 수 있습니다.

반복 대 복제 기능

R의 Repeat 함수 또는 루프는 특정 조건이 충족될 때까지 동일한 코드 블록을 반복적으로 실행하려는 경우에 사용됩니다. 중단될 때까지 명령 블록을 반복적으로 실행하는 for 및 while 루프와 매우 유사합니다. 반복 루프를 만드는 기본 구문은 다음과 같습니다.

반복하다 {

if(조건) {

부서지다

}

}

다음 예에서는 반복 기능의 사용을 명확히 설명합니다.

위의 예에서 반복 루프는 6에 도달할 때까지 값을 합산합니다. 루프가 6에 도달하면 "반복 루프 종료"를 인쇄하여 루프가 중단됩니다.

반면에 R의 복제 함수 또는 rep는 값을 복제하는 데 사용됩니다. rep() 함수를 사용하기 위한 기본 R 구문은 다음과 같습니다.

  1. rep(값, number_of_times)
  2. rep(sequence, each, number_of_times)

다음은 rep() 함수를 이해하기 위한 몇 가지 예입니다.

예: rep() 함수를 사용하여 특정 횟수만큼 값 복제

위의 예에서 값 2는 10번 반복됩니다.

예: 길이 속성과 함께 rep() 함수 사용

위의 예에서 1부터 4까지는 요소의 개수가 20이 될 때까지 순서대로 출력됩니다.

예: rep() 함수를 사용하여 목록 복제

위의 예에서 1부터 5까지의 등급 목록은 세 번 복제되었습니다.

원천

rep() 함수를 사용하여 벡터 확장

rep() 함수는 벡터를 반복하는 유연한 방법입니다. 다음은 몇 가지 예입니다.

실험/관측 단위의 통계 벡터를 단위를 반복적으로 관찰하는 데이터 프레임의 벡터로 확장해야 하는 경우 각 인수가 매우 유용합니다. 예시:

rep()의 또 다른 기능은 길이 인수를 벡터의 각 요소가 반복되는 횟수를 지정하는 벡터로 대체하여 불균형 패널로 벡터를 확장할 수 있다는 것입니다. 예시:

rep 함수의 더 간단하고 빠른 버전에는 rep_len() 및 rep.int()가 있습니다. 이러한 최신 버전은 rep()의 일부 속성 없이 제공되지만 속도가 기본이고 반복되는 벡터의 추가 측면이 바람직하지 않은 경우에 유용합니다.

원천

읽기: 초보자를 위한 6가지 흥미로운 R 프로젝트 아이디어

결론

이 기사에서는 적절한 예를 들어 반복 및 복제 기능에 대해 논의했습니다. 전통적인 반복은 코드 블록의 반복 실행에 유용하지만 R의 rep 는 벡터 또는 목록의 값을 복제하는 데 이상적입니다. 효율적이고 시간을 절약하는 rep() 함수는 벡터 복제를 단순화했습니다!

R, 데이터 과학에 대해 자세히 알고 싶다면 일하는 전문가를 위해 만들어지고 10개 이상의 사례 연구 및 프로젝트, 실용적인 실습 워크숍, 업계 전문가와의 멘토링을 제공하는 IIIT-B & upGrad의 데이터 과학 경영자 PG 프로그램을 확인하십시오. , 업계 멘토와 1:1, 최고의 기업과 400시간 이상의 학습 및 취업 지원.

R에서 반복되는 값으로 벡터를 생성하려면 어떻게 해야 합니까?

R의 rep() 함수는 일련의 정수를 반복하는 데 사용할 수 있습니다. R에는 값이 반복되는 벡터를 만드는 두 가지 기술이 있습니다. 첫 번째 방법은 벡터의 각 요소를 반복하는 반면 두 번째 방법은 주어진 횟수만큼 요소를 반복합니다. 벡터는 이러한 각 접근 방식에서 rep 함수를 사용하여 생성됩니다. 예를 들어, rep(1:5, times=5)는 시퀀스 1에서 5가 5번 반복되는 벡터를 제공합니다.

복제 또는 For 루프 중 어느 기능이 더 빠릅니까?

R 프로그래밍 언어에서 For 루프 함수는 복제 함수보다 빠릅니다. for 루프는 목록의 각 값에 대한 코드를 실행하여 다양한 프로그래밍 언어의 값 목록을 반복하는 기술입니다. rep()는 메모리를 낭비하지 않고 실행하는 것이 유일한 목적인 벡터화된 루핑 함수입니다. 기존 데이터 프레임의 일부를 변경해야 하는 경우 일반적으로 For 루프가 가장 좋은 옵션입니다.

어떻게 R 코드의 속도를 높일 수 있습니까?

R 코드 속도를 높이는 몇 가지 방법은 다음과 같습니다.

1. 데이터 구조와 출력 변수를 계산을 위해 루프에 넣기 전에 길이와 데이터 유형이 올바른지 확인하십시오. 루프 내에서 데이터의 양을 점진적으로 확장하지 마십시오.
2. 데이터 프레임은 많은 상황에서 문제를 일으킬 수 있으므로 가능하면 데이터 프레임 대신 행렬을 사용합니다. 결과적으로 절대적으로 필요한 경우에만 데이터 프레임을 사용하십시오.
3. 가능하면 벡터 및 행렬 연산을 사용합니다.
4. R에서 개체의 유형이나 크기를 변경하지 마십시오. R 개체의 유형과 크기를 변경하면 기본적으로 적절하지 않은 메모리 공간을 재할당합니다.