은 내가 S4 클래스 myclass
를 만들고 그들이 param
S4는 클래스 생성자 및 검증
setClass("myclass", slot = c(x = "numeric"))
#constructor
ValidmyClass<- function(object, param = 1)
{
if([email protected] == param) return(TRUE)
else return("problem")
}
setValidity("myclass", ValidmyClass)
setMethod("initialize","myclass", function(.Object,...){
.Object <- callNextMethod()
validObject(.Object,...)
.Object
})
하는 동안 나는 오류 메시지가 다음받을 매개 변수에 의해 주어진 조건을 확인하면 객체가 생성되도록 짧은 코드를 제시 Error in substituteFunctionArgs(validity, "object", functionName = sprintf("validity method for class '%s'", : trying to change the argument list of for validity method for class 'myclass' with 2 arguments to have arguments (object)
저는 인수에 대한 이슈를 이해하고 있지만이를 해결할 방법을 찾을 수 없습니다. setValidity
에 대한 문서에서는 인수 메소드가 "NULL
또는 하나의 인수 (객체)의 함수"인 유효성 메소드 여야한다고 언급합니다. 그러므로 하나 이상의 논쟁을 제외하고 나의 이해로부터.
그러나이 예제의 배경은 주어진 외부 매개 변수의 값을 기준으로 myclass
개체의 생성을 테스트 할 수 있기를 바랍니다. 더 많은 조건을 추가해야한다면 충분한 유연성을 원합니다. 따라서 더 많은 슬롯을 추가하지 않아도 ValidmyClass
함수 만 업데이트하면됩니다.