이상한 오류 : 메소드 정의에서 생략 된 공식적인 인수는 서명에있을 수 없습니다.
문제
하나의 r 파일에서 일반 메소드를 정의하고 다른 r 파일에 구현하려고합니다. 그러나 나는 이해하지 못하는 오류가 발생합니다.
질문 :
- 오류의 원인은 무엇입니까?
- 오류를 어떻게 수정합니까?
BuyProbabilityGeneric.R
의 내용 :
setGeneric("FirstTimeBuyProbability",
valueClass = "numeric",
function(object, period, price) {
standardGeneric("FirstTimeBuyProbability")
})
setGeneric("ReturningBuyProbability",
valueClass = "numeric",
function(object, period1, price1, period2, price2) {
standardGeneric("ReturningBuyProbability")
})
.
BuyProbabilityBasic.R
의 내용 :
setClass("BuyProbabilityBasic", representation(
full.price.probability = "numeric",
elasticity = "numeric"))
setMethod("FirstTimeBuyProbability",
signature(object = "BuyProbabilityBasic",
period = "numeric", price = "numeric"),
function(object, t, price) {
full.price.probability * price^elasticity
})
setMethod("ReturningBuyProbability",
signature(object = "BuyProbabilityBasic",
period1 = "numeric", price1 = "numeric",
period2 = "numeric", price2 = "numeric"),
function(object, period1, price1, period2, price2) {
max(0, FirstTimeBuyProbability(object, period2, price2) -
FirstTimeBuyProbability(object, period1, price1))
})
.
r 콘솔 출력 :
> source('BuyProbabilityGeneric.R')
> source('BuyProbabilityBasic.R')
Error in conformMethod(signature, mnames, fnames, f, fdef, definition) :
in method for ‘FirstTimeBuyProbability’ with signature
‘object="BuyProbabilityBasic",period="numeric",price="numeric"’:
formal arguments (period = "numeric") omitted in the method definition
cannot be in the signature
.해결책
시도 :
setMethod("FirstTimeBuyProbability",
signature(object = "BuyProbabilityBasic",
period = "numeric", price = "numeric"),
function(object, period, price) {
full.price.probability * price^elasticity
})
.
Function Pricture 형식에서 t
에서 period
를 변경하는 방법을 확인하십시오.기본적으로 형식이 서명과 충돌하는 함수를 정의하려고했습니다.
제휴하지 않습니다 StackOverflow