R 언어 정의: 그룹 메서드
R 언어 정의: 그룹 메서드
R은 여러 내부 함수에 대해 연산자 디스패치 메커니즘을 제공해요. 이번 섹션에서는 특수 클래스의 객체에 대해 연산자 동작을 수정할 수 있는 그룹 메서드를 살펴볼게요.
출처: 문서
본문
5.6 그룹 메서드
여러 종류의 내부 함수에 대해 R은 연산자를 위한 디스패치 메커니즘을 제공해요. 즉, == 이나 < 같은 연산자는 특수 클래스의 멤버에 대해 그 동작을 수정할 수 있어요. 함수와 연산자는 세 가지 범주로 묶여 있으며, 각 범주에 대해 그룹 메서드를 작성할 수 있어요. 현재 그룹을 추가하는 메커니즘은 없지만, 그룹 내의 어떤 함수에 대해서도 개별 메서드를 작성하는 것은 가능해요.
각 그룹에 속한 함수와 연산자는 다음과 같아요.
Math:abs,acos,acosh,asin,asinh,atan,atanh,ceiling,cos,cosh,cospi,cumsum,exp,floor,gamma,lgamma,log,log10,round,signif,sin,sinh,sinpi,tan,tanh,tanpi,truncSummary:all,any,max,min,prod,range,sumOps:+,-,*,/,^,<,>,<=,>=,!=,==,%%,%/%,&,|,!
Ops 그룹의 연산자에서는 두 피연산자를 함께 고려했을 때 단일 메서드가 결정되면 특별한 메서드가 호출돼요. 구체적으로, 두 피연산자가 모두 같은 메서드에 해당하거나, 한 피연산자의 메서드가 다른 피연산자의 메서드보다 우선할 때 그렇죠. 단일 메서드가 결정되지 않으면 기본 메서드가 사용돼요. 다른 피연산자에 대응하는 메서드가 없으면 그룹 메서드나 클래스 메서드 중 하나가 우선하며, 클래스 메서드는 그룹 메서드보다 우선해요.
그룹이 Ops일 때 특별 변수 .Method는 두 개의 원소를 가진 문자 벡터예요. .Method의 각 원소는 대응하는 인자가 메서드를 결정하는 데 사용된 클래스의 멤버라면 그 메서드의 이름으로 설정되고, 그렇지 않으면 해당 원소는 길이가 0인 문자열 ""로 설정돼요.