From luke-tierney at uiowa.edu  Mon Feb  7 21:13:48 2011
From: luke-tierney at uiowa.edu (luke-tierney at uiowa.edu)
Date: Mon, 7 Feb 2011 14:13:48 -0600
Subject: [Rd] as.list(subclassed function) -> cannot coerce type
 'closure' to vector of type 'list'
In-Reply-To: <77EB52C6DD32BA4D87471DCD70C8D70003DE1FB8@NA-PA-VBE03.na.tibco.com>
References: <77EB52C6DD32BA4D87471DCD70C8D70003DE1FB8@NA-PA-VBE03.na.tibco.com>
Message-ID: <alpine.DEB.2.00.1102071410230.1906@luke-inspiron>

For this application I would use names(formals(object)) to extract the
formal arguments.

luke

On Mon, 7 Feb 2011, William Dunlap wrote:

> I was looking for all the glm-related 'family' functions
> in stats using the following predicate that returns TRUE
> for any function whose first argument is called "link".
>   is.family <- function(object) is.function(object) &&
>            identical(names(as.list(object))[1], "link")
>
> It threw an error when applied to SSfol
>   > is.family(SSfol)
>   Error in as.vector(x, "list") :
>     cannot coerce type 'closure' to vector of type 'list'
> but works when I unclass SSfol
>   > is.family(unclass(SSfol))
>   [1] FALSE
>
> It looks like as.list fails on any function that is assigned
> a class:
>   > as.list(function(x)x+1)
>   $x
>
>
>   [[2]]
>   x + 1
>
>   > as.list(structure(function(x)x+1, class="unrecognized class name"))
>   Error in as.vector(x, "list") :
>     cannot coerce type 'closure' to vector of type 'list'
>
> Bill Dunlap
> Spotfire, TIBCO Software
> wdunlap tibco.com
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

-- 
Luke Tierney
Statistics and Actuarial Science
Ralph E. Wareham Professor of Mathematical Sciences
University of Iowa                  Phone:             319-335-3386
Department of Statistics and        Fax:               319-335-3017
    Actuarial Science
241 Schaeffer Hall                  email:      luke at stat.uiowa.edu
Iowa City, IA 52242                 WWW:  http://www.stat.uiowa.edu



[Rd] as.list(subclassed function) -> cannot coerce type 'closure' to vector of type 'list'
luke-tierney at uiowa.edu