Je crée deux classes S4, où la classe Employee hérite de l'autre classe Person.Comment rendre une classe S4 héritée correctement d'une autre classe S4?
La définition pour les deux classes est la suivante:
setClass("Person", slots = list(name="character", age="numeric"))
setClass("Employee", slots = list(boss="Person"))
Je crée une fois par exemple chacun de ces deux classes,
alice <- new("Person", name="Alice", age = 40)
Cela fonctionne bien, mais lorsque je tente de créer un par exemple à l'aide de l'employé:
john <- new("Employee", name = "John", age = 20, boss= alice)
Il donne l'erreur comme ci-dessous:
Error in initialize(value, ...) :
invalid names for slots of class “Employee”: name, age
Est-ce que je ne peux pas créer l'objet de cette façon?
Vous avez oublié de spécifier la classe de base pour 'Employee'; utilisez 'setClass (" Employé ", slots = liste (boss =" Personne "), contient =" Personne ")' et cela devrait fonctionner. – nrussell
@ Mise à jour de la question, toujours la même erreur – Sarang
@Sarang 'contains' est un paramètre de' setClass' et doit être en dehors de la liste. Étudiez soigneusement les parenthèses dans le commentaire de Russell. – Roland