아주 클래시해요
변수에는 둘 이상의 클래스가 있을 수 있어요. 이 경우 class()(문서)는 길이가 1보다 큰 문자열 벡터를 반환합니다.
마찬가지로 class()에 문자열 벡터를 할당하면 여러 클래스를 지정할 수 있어요. 가장 구체적인 것에서 가장 일반적인 것으로, 왼쪽에서 오른쪽 순서로 정하는 것이 좋습니다. 객체에 가장 맞는 동작부터 적용되기 때문이에요. 예를 들어,
x <- c("a", "e", "i", "o", "u")
class(x) <- c("vowels", "letters", "character")
다른 클래스에 속하는지 확인하려면 범용 함수인 inherits()(문서)를 사용할 수 있어요. 예를 들어,
inherits(x, "vowels")
이 연습은 강의의 일부입니다
R에서 S3와 R6로 배우는 Object-Oriented Programming
연습 안내
작업 공간에 변수 kitty가 미리 정의되어 있습니다.
- 이름을 입력해
kitty를 확인하세요. - 변수
kitty에 클래스"cat","mammal","character"를 할당하세요. inherits()를 사용해kitty가"cat","mammal","character"클래스를 각각 가지고 있는지(한 번에 하나씩, 해당 순서로) 확인하세요.is.character()를 사용해kitty가 여전히 character 벡터인지 확인하세요.kitty에"dog"클래스가 없다는 것도 확인하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# View the kitty
kitty
# Assign classes
___ <- ___
# Does kitty inherit from cat/mammal/character?
inherits(___, "___")
___
___
# Is kitty a character vector?
___
# Does kitty inherit from dog?
___