David:

Thanks!  Is it generally frowned upon (if I'm Incorporating this into
a package) to "override" a generic function like "predict", even if I
plan on making it a pass-through function (same parameters, and if the
data type doesn't match my "weird" data type, it will simply pass the
parameters through to the generic S3 "predict")?

--j

On Mon, Mar 17, 2014 at 4:08 AM, David Winsemius <dwinsem...@comcast.net> wrote:
> S3 classes only dispatch on the basis of the first parameter class. That was 
> one of the reasons for the development of S4-classed objects. You say you 
> have the expectation that the object is of a class that has an ordinary 
> `predict` method presumably S3 in character,  so you probably need to write a 
> function that will mask the existing method. You would rewrite the existing 
> test for the existence of 'newdata' and the the definition of the new 
> function would persist through the rest of the session and could be 
> source()-ed in further sessions.
>
> --
> David.
>
>
> On Mar 16, 2014, at 2:09 PM, Jonathan Greenberg wrote:
>
>> R-helpers:
>>
>> I'm having some trouble with this one -- I figure because I'm a bit of
>> a noob with S3 classes...  Here's my challenge: I want to write a
>> custom predict statement that is triggered based on the presence and
>> class of a *newdata* parameter (not the "object" parameter).  The
>> reason is I am trying to write a custom function based on an oddly
>> formatted dataset that has been assigned an R class.  If the predict
>> function "detects" it (class(newdata) == "myweirdformat") it does a
>> conversion of the newdata to what most predict statements expect (e.g.
>> a dataframe) and then passes the converted dataset along to the
>> generic predict statement.  If newdata is missing or is not of the odd
>> class it should just pass everything along to the generic predict as
>> usual.
>>
>> What would be the best way to approach this problem?  Since (my
>> understanding) is that predict is dispatched based on the object
>> parameter, this is causing me confusion -- my object should still
>> remain the model, I'm just allowing a new data type to be fed into the
>> predict model(s).
>>
>> Cheers!
>>
>> --j
>>
>> --
>> Jonathan A. Greenberg, PhD
>> Assistant Professor
>> Global Environmental Analysis and Remote Sensing (GEARS) Laboratory
>> Department of Geography and Geographic Information Science
>> University of Illinois at Urbana-Champaign
>> 259 Computing Applications Building, MC-150
>> 605 East Springfield Avenue
>> Champaign, IL  61820-6371
>> Phone: 217-300-1924
>> http://www.geog.illinois.edu/~jgrn/
>> AIM: jgrn307, MSN: jgrn...@hotmail.com, Gchat: jgrn307, Skype: jgrn3007
>>
>> ______________________________________________
>> R-help@r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
> David Winsemius
> Alameda, CA, USA
>



-- 
Jonathan A. Greenberg, PhD
Assistant Professor
Global Environmental Analysis and Remote Sensing (GEARS) Laboratory
Department of Geography and Geographic Information Science
University of Illinois at Urbana-Champaign
259 Computing Applications Building, MC-150
605 East Springfield Avenue
Champaign, IL  61820-6371
Phone: 217-300-1924
http://www.geog.illinois.edu/~jgrn/
AIM: jgrn307, MSN: jgrn...@hotmail.com, Gchat: jgrn307, Skype: jgrn3007

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to