변수가 어떤 클래스에서 상속되는지 확인하려면 is
또는 inherits
을 사용할 수 있습니다.상속인과 상속인의 차이점은 무엇입니까?
class(letters)
## [1] "character"
is(letters, "character")
## [1] TRUE
inherits(letters, "character")
## [1] TRUE
내가 사용해야하는 설정이 있으며, 다른 값을 반환합니까?
변수가 어떤 클래스에서 상속되는지 확인하려면 is
또는 inherits
을 사용할 수 있습니다.상속인과 상속인의 차이점은 무엇입니까?
class(letters)
## [1] "character"
is(letters, "character")
## [1] TRUE
inherits(letters, "character")
## [1] TRUE
내가 사용해야하는 설정이 있으며, 다른 값을 반환합니까?
짧은 버전 :
사용 inherits
하지만 숫자와 S4 클래스에주의.
긴 버전 :
상속은 S4와 비 S4 객체, 모두,하는 것입니다 거의 항상 동일합니다 다음
is
도움말 페이지의 관련 항목 섹션에서다소 빠릅니다. 비 동등성은 조건부 수퍼 클래스가있는 클래스에 적용됩니다 (일반적이지는 않으나 권장하지 않음) : 관계에 대한 테스트이지만 정의에 따라 상속됨에 따라 조건부 S4에 대한 상속이 무시됩니다. 사물.
inherits
도움말 페이지의 공식 클래스 섹션에서
: 공식 클래스
상속의 아날로그은입니다. 두 함수는 한 가지 예외가있는 것처럼 일관되게 동작합니다. S4 클래스는 명시 적 테스트를 통해 조건부 상속을 가질 수 있습니다. 이 경우 이 조건을 테스트하지만 모든 조건부 수퍼 클래스를 상속합니다.
그래서 대부분 같은 것을 반환하지만, inherits
이 더 빠르므로 대부분의 경우 기본 선택 항목이어야합니다. 조건부 상속 S4 클래스를 사용하는 경우
값이 다를 수있다 (콘라드 언급 된 바와 같이, is
도. methods
패키지 Rscript
성능 민감한 용도에 부적합 할 수있는로드되어 있어야)하지만이다 not recommended ("방법 선택 및 발송 : 세부 정보"섹션 참조) 이는 희망 사항이 아님을 의미합니다.
정수가 숫자인지 확인하는 가장 두드러진 기능이 있습니다.
class(1L)
## [1] "integer"
is.numeric(1L)
## [1] TRUE
is(1L, "numeric")
## [1] TRUE
inherits(1L, "numeric")
## [1] FALSE
좋아요, ** 정수가 "상속"하지 않는 이유는 무엇입니까? ** float은 다음과 같이 설명합니다 : Rgames> class (1.4) [1] "numeric" Rgames> is.numeric (1.4) [1] TRUE Rgames> inherits (1.4, 'numeric') [1] TRUE Rgames>는 (1.4, 숫자) [1] TRUE –
숫자 개체가 * 암시 적이라는 사실과 관련이 있다고 생각합니다. * class only :'? class'에서'객체가 class 속성을 가지고 있지 않으면 암시 적 클래스, 'matrix' ','array ''또는 'mode (x)'의 결과를 제외하고는 (except 그 정수 벡터는 암시적인 클래스 ' "정수"'를 가짐).)'is'는 암시적인 클래스를보고'상속 '은 ...? –
나는 이것을 "무능함"이라고 부르는 하이 -R 주체들의 의견을 지나치는 것을 기억한다. –
'r-faq' 태그는이 태그에 표시하지 않으시겠습니까? –