S3 메서드 만들기 (1)
제네릭 함수만으로는 실제로 아무 일도 하지 않아요. 동작하게 만들려면 메서드를 만들어야 하는데, 메서드는 다음 두 가지 조건을 만족하는 일반 함수예요:
- 메서드 이름은
generic.class형식이어야 해요. - 메서드 시그니처, 즉 메서드에 전달되는 인자는 제네릭의 시그니처를 포함해야 해요.
문법은 다음과 같아요:
generic.class <- function(some, arguments, ...) {
# Do something
}
이 연습은 강의의 일부입니다
R에서 S3와 R6로 배우는 Object-Oriented Programming
연습 안내
워크스페이스에 제네릭 get_n_elements() 함수가 정의되어 있어요.
- 이름만(괄호 없이) 입력해서 어떻게 작동하는지 확인해 보세요.
data.frame객체의 원소 개수를 계산하는 S3 메서드를 작성하세요.- 함수 이름은 제네릭 이름 뒤에
.을 붙이고, 그다음 입력 객체의 클래스 이름을 붙여야 해요. - 입력 인자는
x와...여야 해요. - 함수 본문은 한 줄로, 데이터 프레임의 원소 개수(행 × 열)를 반환해야 해요.
- 함수 이름은 제네릭 이름 뒤에
sleep(docs) 데이터셋에get_n_elements를 호출하고, 결과를 변수n_elements_sleep에 할당하세요.- 결과를 확인하려면 콘솔에
n_elements_sleep를 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# View get_n_elements
get_n_elements
# Create a data.frame method for get_n_elements
___ <- ___
# Call the method on the sleep dataset
n_elements_sleep <- ___
# View the result
n_elements_sleep