객체지향언어와 함수 구조보기
객체지향언어란?
자료나 변수가 객체를 가지는 언어.
R에서는 plot이나 print 등 하나의 함수가 입력되는 객체에 따라 다른 결과물을 가져오는데, 객체가 특정 클래스에 속하는 객체를 대상으로 하여 작성된 함수를 method라 하며, method는 객체가 가지는 특성을 설명하는 정보를 뜻한다.
클래스는 주어진 객체가 변수이면 어떤 자료형을 가지는지, 데이터면 어떤 자료구조를 가지는지 등 설명하는 정보를 가진다.
S3, S4의 개념
S언어는 보통 4가지 버전이 존재한다고 하는데 S1~S4로 구별하며, S3와 S4에는 객체지향성의 구현방식에 차이가 존재한다.
S3의 객체지향
S3의 객체지향성의 구현방법은 특정 문자열의 일치 유무이다. 예를들어 선형모형을 lm_fit으로 할당하면 lm_fit의 클래스는 lm으로 지정된다. 이 때 summary(lm_fit)과 같이 summary()라는 일반함수(generic fucntion)을 사용해 객체의 클래스와 맞는 method인 summary.lm()을 찾아 사용한다.
S3의 문제점
S3의 문제점은 사용자가 같은 객체를 생성하였을 때 원하지 않는 결과를 나타낸다. 또한 여러개의 객체를 가지는 경우 전체객체에 대하여 일관되게 작용하지 않을 수 있다는 문제점을 가지고 있다.
이러한 문제점을 개선하기 위해 S4에서는 클래스의 정의와 slot을 사용하고 있다. slot 클래스의 구성요소를 뜻한다. 아래와 같이 class와 slot을 같이 지정하므로, 사용자가 같은 객체를 생성하였을 때도 문제가 되지 않으며, setIs()함수를 통해 클래스들 사이의 관계를 직접 정의할 수 있다.
'R' 카테고리의 다른 글
텍스트마이닝(사회관계망, 워드클라우드) (0) | 2019.06.06 |
---|---|
leaflet 지도그리기 (0) | 2019.04.09 |
이미지 벡터화해서 저장하기 (0) | 2019.03.21 |
정규표현식(R) (3) | 2019.03.19 |
R 기본 플롯 사용하기 (0) | 2019.03.19 |