1. 학습
  2. /
  3. 강의
  4. /
  5. R에서 S3와 R6로 배우는 Object-Oriented Programming

Connected

연습 문제

S3 메서드 만들기 (1)

제네릭 함수만으로는 실제로 아무 일도 하지 않아요. 동작하게 만들려면 메서드를 만들어야 하는데, 메서드는 다음 두 가지 조건을 만족하는 일반 함수예요:

  1. 메서드 이름은 generic.class 형식이어야 해요.
  2. 메서드 시그니처, 즉 메서드에 전달되는 인자는 제네릭의 시그니처를 포함해야 해요.

문법은 다음과 같아요:

generic.class <- function(some, arguments, ...) {
  # Do something
}

지침

100 XP

워크스페이스에 제네릭 get_n_elements() 함수가 정의되어 있어요.

  • 이름만(괄호 없이) 입력해서 어떻게 작동하는지 확인해 보세요.
  • data.frame 객체의 원소 개수를 계산하는 S3 메서드를 작성하세요.
    • 함수 이름은 제네릭 이름 뒤에 .을 붙이고, 그다음 입력 객체의 클래스 이름을 붙여야 해요.
    • 입력 인자는 x와 ...여야 해요.
    • 함수 본문은 한 줄로, 데이터 프레임의 원소 개수(행 × 열)를 반환해야 해요.
  • sleep(docs) 데이터셋에 get_n_elements를 호출하고, 결과를 변수 n_elements_sleep에 할당하세요.
  • 결과를 확인하려면 콘솔에 n_elements_sleep를 출력하세요.