J'ai un problème de vérification de la validité de ma classe 'class2'; il est fait d'une liste d'objets 'class1'. Je veux vérifier qu'il est bien le cas:R S4class contenant la liste d'un autre S4class
class2 <- setClass(
Class = "class2",
slots = c(slotListName = "list"),
validity = function(object){
lapply([email protected], function(x){
if(!identical(is(x), "class1"))
stop(" not a class1 object");
});
});
Le problème est que retourne lapply valeurs qui ne sont pas acceptées:
Error in validObject(.Object) :
invalid class “class2” object: 1: NULL
invalid class “class2” object: 2: NULL
J'ai vérifié que le problème provenait du lapply en testant seulement le premier élément de la liste, qui fonctionne bien:
if(!identical(is([email protected][[1]]), "class1"))
stop("not a class1 object");
J'ai essayé de vectoriser mais cela ne change pas le problème.
Existe-t-il un moyen de vérifier que slotListName est bien une liste d'objets 'class1'?
Merci beaucoup!
Que voulez-vous qu'il se passe s'il n'y a pas d'objets class1? Est-ce que 'slotListName' devrait être NULL ou une liste de longueur 0? –
Je veux que le constructeur lance une erreur et que l'objet de classe 2 ne soit pas créé. Merci! – nicoluca