R6 basics

R6 R6는 기존에 존재하던 RC(Reference Class)와 유사한 Class의 기능을 제공합니다. 하지만 RC와는 다르게 S4 시스템에 의존하지 않으면서 RC보다 더 효율적으로 동작합니다 R에서는 기본적으로 copy-on-modify가 적용됩니다. 다시 말하자면, object를 조금이라도 수정하게 되면 object를 복사한 다음에 수정을 하게 됩니다. 하지만 RC, R6의...

Plotly for R

Getting Started with Plotly for R Plotly 서비스의 코어 부분인 Plotly.js가 오픈소스화 되었습니다. 그 영향으로 로컬 환경에서 plotly를 이용해 인터렉티브 차트를 그릴 수 있게 되었습니다. 파이썬 등 다른 언어를 통해서도 지원하지만, R의 경우 ggplot2와의 호환성이 높다는 것이 큰 특징이라고 할...

tidyr Utilities

tidyr Utilities tidyr 패키지에서 가장 중심이 되는 기능은 gather와 spread를 이용한 데이터 형태 변환이다. 하지만 이전 포스팅에서도 다루었지만, NA를 처리하는 replace_na나 fill 등 데이터를 편리하게 정제할 수 있는 도구들을 제공하기도 한다. 여기서는 이전까지의 글에서 다루지 않았던 tidyr의 다른 기능에 대해서...

Grouped Bar chart

Grouped bar chart http://bl.ocks.org/mbostock/3887051를 보고 수정하면서 알게 된 내용을 정리하려고 한다. 위 예제에서는 x축의 scale함수를 그룹에 대한 scale과 그룹 내에서 막대의 위치에 대한 scale 두 개로 나누어서 막대를 배치하는 방식으로 구성했다. 여기서는 D3를 이용해서 기본적인 막대그래프를 만드는 방법은 알고 있다고...

memoise in R

Memoization 메모이제이션(memoization)은 컴퓨터 프로그램이 동일한 계산을 반복해야 할 때, 이전에 계산한 값을 메모리에 저장함으로써 동일한 계산의 반복 수행을 제거하여 프로그램 실행 속도를 빠르게 하는 기술이다 https://ko.wikipedia.org/wiki/메모이제이션 여기서는 memoise 패키지에 구현된 함수를 사용한다 memoization 여부에 따른 성능 차이를 확인해보기 위해 쓸데없이...