, 내가 S3
클래스와 예제를주지 : 이제
# create an S3 class using setClass:
setClass("S3_class", representation("list"))
# create an object of S3_class
S3_obj <- new("S3_class", list(x=sample(10), y=sample(10)))
을, 당신은 기능 - 수 과부하 내부 함수, 예를 들어, 귀하의 클래스에 length
기능 (마찬가지로 operator-overload
수 있습니다) :
0 같은 (
len <- function(x) {
if (class(x) != "S3_class") {
stop("object not of class S3_class")
}
sapply(x, length)
}
> len(S3_obj)
# x y
# 10 10
> len(1:10)
# Error in len(1:10) : object not of class S3_class
S4를 설명하기 조금 어렵다 :
length.S3_class <- function(x) sapply(x, length)
# which allows you to do:
length(S3_obj)
# x y
# 10 10
또는 양자 택일로, 당신은 어떤 이름, 당신은 객체 클래스 S3_class
의 경우 확인하고 뭔가를 할 수와 자신의 기능을 할 수 있습니다 S3) 알고 있어야 할 용어와 것들이 상당히 많기 때문에 (어렵지도 않고 전혀 다른 것도 아닙니다). 나는 당신이 그 (그리고 S3에 대한 코멘트 아래 제공된 링크를 통해, 여기에 내 목적은 어떻게 완료의 예를 보여 주었다) 제안했다.
어쩌면 당신은 DevTools로 위키의 "객체 지향 프로그래밍"절을 읽어야합니다 : //github.com/hadley/devtools/wiki – juba
R에는 'S3', 'S4', O5의 'R5'개념이 있습니다. 하나를 선택하고 자신의 기능 (S3) 또는 메소드 (S4, R5)를 정의해야합니다. [** 여기 **] (https://github.com/hadley/devtools/wiki/S3) 시작 – Arun
... 관련 : http://stackoverflow.com/questions/9521651/r-and-object-oriented -프로그램 작성 –