[R] Please, remind a function name

Vladimir Eremeev wl2776 at gmail.com
Tue May 22 21:32:40 CEST 2007


My solution (after a cup of coffee :) ):

model.formula<-switch(model.type,S=[s-model formula],HK=[hk-model formula])
model<-lm(model.formula)


Gabor Grothendieck wrote:
> 
> You could use the class dispatching mechanism:
> 
> 
> mymodel <- function(a, b, method = "S") {
> 	.Class <- method
> 	NextMethod("mymodel")
> }
> 
> mymodel.S <- function(a, b, method = "S") cat("S:", a, b, method, "\n")
> mymodel.HK <- function(a, b, method = "S") cat("HK:", a, b, method, "\n")
> 
> mymodel(1:3, 1:4)
> mymodel(1:3, 1:4, "S")
> mymodel(1:3, 1:4, "HK")
> 
> 
> 
> On 5/22/07, Vladimir Eremeev <wl2776 at gmail.com> wrote:
>>
>> Sorry, I'm stuck. :)
>>
>> I am writing a function, which would fit either one linear model or
>> another
>> one, depending on its argument model.type.
>> And I don't want to use several if's, because R allows doing it with much
>> more beauty.
>>
>> That is I am looking for prettier alternative to the following
>>
>> AB2C<-function(a,b,model.type="S") { # or HK, and return NULL if this
>> argument has any other value
>> [ do some stuff]
>>
>>  if(model.type=="S") model<-lm( [s.model formula] )
>>  else if (model.type == "HK") model<-lm([hk.model formula])
>>  else model<-NULL
>>
>>  return(model)
>> }
>>
>> I was looking at "switch", but didn't come to solution. Sorry <:)
> 
> 

-- 
View this message in context: http://www.nabble.com/Please%2C-remind-a-function-name-tf3797444.html#a10750855
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list