본문 바로가기
  • plotly로 바로쓰는 동적시각화 in R & 파이썬

apply2

apply, lapply, sapply, tapply in R apply 함수의 이해 앞선 포스트에서는 R에서 대규모 데이터에 대한 처리 과정에서 벡터 연산과 루프 연산간의 속도 차이를 살펴보았다. 사실 앞선 포스트에서 비교했던 세가지 방법(함수 자체의 벡터 연산을 통한 대규모 데이터 처리, for 루프에서 함수 호출을 사용한 대규모 데이터 처리, apply()를 사용한 대규모 데이터 처리)들에서 사실 첫번째 방법의 속도가 우수하게 나올수 밖에 없었던 하나의 이유는 함수 호출에 대한 오버헤드가 없었다는 점이다. 루프를 사용하는 방법이나 apply()를 사용하는 방법은 데이터를 계산할 때마다 함수를 호출해야하기 때문에 이에 대한 속도의 문제가 발생할 수 밖에 없다. 그렇기 때문에 함수 자체에서 벡터 연산을 지원하도록 설계하는 것이 R에서의 대규모 데이터 처리에 핵심일.. 2022. 3. 12.
for loop, apply, 벡터 연산의 속도 차이 in R apply와 loop 모든 프로그래밍 언어에서는 기본적으로 지원하는 몇가지 공통적인 로직들이 있다. 사칙연산과 같은 수학적 계산 방법, 프로그래밍 결과를 표시하기 위한 화면 제어 방법, 데이터 타입 설정, 변수 설정과 처리와 같은 자료 구조에 관련된 방법등이 이에 속한다. 이 후 다루는 것이 프로그램의 논리적 흐름을 제어할 수 있는 조건문과 반복문이다. R에서도 일반 프로그래밍 언어들이 제공하는 대부분의 기능적 요소들을 기본적을 지원한다. 하지만 R은 데이터 처리를 위한 프로그램인 만큼 대용량 데이터를 얼마나 빠르게 처리하는가가 성능적 요인을 평가하는 중요한 요인이다. 이렇게 대용량 데이터를 처리하는 과정에서 필수적으로 사용되는 것이 반복적 작업인 loop이다. 동일한 작업을 수만, 수십만, 혹은 수억개.. 2022. 2. 26.