1
我正在創建兩個S4類,其中類Employee從另一個類Person繼承。如何讓S4類從另一個S4類正確繼承?
兩個類的定義如下:
setClass("Person", slots = list(name="character", age="numeric"))
setClass("Employee", slots = list(boss="Person"))
我創建一次實例這些兩類,
alice <- new("Person", name="Alice", age = 40)
這工作得很好,但是當我嘗試創建一個員工的情況下使用:
john <- new("Employee", name = "John", age = 20, boss= alice)
它給出如下錯誤:
Error in initialize(value, ...) :
invalid names for slots of class 「Employee」: name, age
我不能以這種方式創建對象嗎?
你忘了指定'Employee'的基類;使用'setClass(「Employee」,slots = list(boss =「Person」),contains =「Person」)'這應該可以工作。 – nrussell
@更新了問題,仍然是相同的錯誤 – Sarang
@Sarang'contains'是'setClass'的一個參數,並且必須在列表之外。仔細研究nrussell評論中的括號。 – Roland