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, trunc
  • Summary: all, any, max, min, prod, range, sum
  • Ops: +, -, *, /, ^, <, >, <=, >=, !=, ==, %%, %/%, &, |, !

Ops 그룹의 연산자에서는 두 피연산자를 함께 고려했을 때 단일 메서드가 결정되면 특별한 메서드가 호출돼요. 구체적으로, 두 피연산자가 모두 같은 메서드에 해당하거나, 한 피연산자의 메서드가 다른 피연산자의 메서드보다 우선할 때 그렇죠. 단일 메서드가 결정되지 않으면 기본 메서드가 사용돼요. 다른 피연산자에 대응하는 메서드가 없으면 그룹 메서드나 클래스 메서드 중 하나가 우선하며, 클래스 메서드는 그룹 메서드보다 우선해요.

그룹이 Ops일 때 특별 변수 .Method는 두 개의 원소를 가진 문자 벡터예요. .Method의 각 원소는 대응하는 인자가 메서드를 결정하는 데 사용된 클래스의 멤버라면 그 메서드의 이름으로 설정되고, 그렇지 않으면 해당 원소는 길이가 0인 문자열 ""로 설정돼요.

더 알아보기 (Learn more)

출처: R Language Definition - 그룹 메서드