1
두 개의 S4 클래스를 만들고 있는데, 여기서 Employee 클래스는 다른 클래스 Person으로부터 상속을받습니다.S4 클래스를 다른 S4 클래스에서 올바르게 상속하는 방법은 무엇입니까?
다음과 같이 클래스 모두에 대한 정의는 다음과 같습니다이 잘 작동하지만,
alice <- new("Person", name="Alice", age = 40)
나는이 두 클래스의 각 인스턴스에 한 번 만드는 오전
setClass("Person", slots = list(name="character", age="numeric"))
setClass("Employee", slots = list(boss="Person"))
을, 나는를 만들려고 할 때 직원의 인스턴스 사용 :
john <- new("Employee", name = "John", age = 20, boss= alice)
아래와 같은 오류 메시지가 표시됩니다.
Error in initialize(value, ...) :
invalid names for slots of class “Employee”: name, age
이 방식으로 개체를 만들 수 없습니까? nrussel의 코멘트 당
'Employee'의 기본 클래스를 지정하는 것을 잊었습니다. setClass ("Employee", slots = list (boss = "Person"), contains = "Person")'을 사용하면됩니다. – nrussell
@ 여전히 질문이 업데이트되었습니다. – Sarang
@Sarang'contains'는'setClass'의 매개 변수이며 목록 외부에 있어야합니다. nrussell의 주석에있는 괄호를주의 깊게 연구하십시오. – Roland