Why R?
혹시 이런 광고 보신 적 있나요? “초심자도, 비전공자도 할 수 있는 데이터 사이언스”. 구글에 한 번이라도 ‘데이터 사이언스’ 관련 검색어를 입력하신 분이라면, 빅데이터의 시대답게 페이스북, 인스타그램에서 갑자기 데이터 사이언스 관련 광고를 무수히 많이 보셨을 겁니다.
요즘 이렇게 데이터 사이언스 분야가 핫해지면서 코딩 역시 주목을 받고 있는데요, Python, C, Java 등 정말 다양한 프로그래밍 언어들이 있습니다. R 역시 프로그래밍 언어 중 하나입니다. 그럼 많고 많은 언어들 중에 R을 공부해야하는 이유는 무엇일까요?
R은 그야말로 데이터를 다루는 데 최적화 된 언어라고 할 수 있습니다. 통계, 데이터 분석, 계산, 그래프를 모두 아우르는 ‘interactive data analysis’를 위한 언어입니다. 따라서 데이터 사이언스에 흠뻑 취하고 싶으신 분들께 R은 너무나 매력적이고 유용한 도구입니다. 이번 포스팅에서는 R의 ‘오브젝트’를 파헤쳐 보겠습니다.
Let’s R! — Objects
오브젝트(Objects)란 무엇일까요? 오브젝트는 R이 만들고 다루는 객체로, 원자atomic 수준의 가장 기초적인 구조입니다. 오브젝트는 변수일수도, 숫자의 배열일수도, 함수일수도, 또 다른 요소일 수도 있습니다. R의 모든 것이 사실 오브젝트입니다.
“R is all about objects.”
오브젝트에 부등호와 빼기 기호를 써 값을 할당할 수 있습니다.
city <- c("Seoul", "Busan", "Incheon")
Class
오브젝트가 정말 어디에서나 쓰이는 만큼 종류도 굉장히 많은데요, 오브젝트의 class가 무엇인지 살펴 보겠습니다.
objects는 name, dimension, class 같은 특성attribute을 갖습니다. class는 오브젝트의 특성 중 하나로, R의 모든 오브젝트는 각각 class가 있습니다. 이 class의 중요성은 프로그래밍 방식에 있습니다. 프로그래밍 방식programming paradigm 중 객체 지향 프로그래밍object-oriented style programming은 객체object에 집중하는 프로그래밍 방식으로, 개발속도가 빠르고 오류를 찾기 쉽다는 장점이 있습니다. class는 R로 이 객체 지향 프로그래밍을 할 수 있도록 해주는 특성입니다.
마이크로소프트 워드로 예시를 들어볼까요? 워드로 어떤 문서를 제작할 때 우리는 다양한 서식(layout)을 설정할 수 있습니다. 용지방향을 가로로할지 세로로할지, 가장자리 여백은 얼마로 할지 등 서식을 결정하고 나면, 문서의 내용물은 우리가 설정한 서식대로 적힙니다. 이처럼 객체 지향 프로그래밍을 할 때, 각object는 class에 맞춰 만들어집니다.
class의 예시로는 간단하게는 "character"
, "numeric"
, "logical"
, "list"
, "integer"
부터 "matrix"
, "array"
, "factor"
, "data.frame"
등이 있습니다. 어떤 오브젝트의 class가 궁금할 땐
class()
코드를 사용하시면 됩니다. 직접 한 번 써 볼까요? 위에서 ‘<-’ 기호를 사용해 city라는 오브젝트에 서울, 부산, 인천이라는 도시 세 개를 할당해주었는데요,
class(city)
이 코드로 city의 class를 확인해보면… 'character'
라는 값이 나오네요.
이 포스팅에서는 R의 근간이 되는 objects와, 또 다른 중요한 개념 class에 대해 알아보았습니다. 이 개념을 바탕으로 향후 포스팅에서는 차차 더 다양한 개념을 다루고 적용해보겠습니다. 감사합니다.
** 이 포스팅은 CRAN의 Documentation을 바탕으로 작성되었습니다.**
https://cran.r-project.org/doc/manuals/r-release/R-intro.html