我有一個問題來驗證我的類'class2'的有效性;它由'class1'對象列表組成。我想,以驗證它確實是這樣的:R S4類包含另一個S4類的列表
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");
});
});
的問題是,lapply返回這是不能接受的值:
Error in validObject(.Object) :
invalid class 「class2」 object: 1: NULL
invalid class 「class2」 object: 2: NULL
我檢查這個問題從lapply僅測試來列表中的第一個元素,這是工作的罰款:
if(!identical(is([email protected][[1]]), "class1"))
stop("not a class1 object");
我試圖向量化,但是這並不能改變問題。
有沒有辦法來驗證slotListName確實是'class1'對象的列表?
非常感謝!
如果沒有class1對象,你希望發生什麼? 'slotListName'應該是NULL還是長度爲0的列表? –
我想要構造函數拋出一個錯誤,並且不要創建類2對象。謝謝! – nicoluca