4

R では、回帰関数はリストglmであるクラスのオブジェクトを生成しますglm

glmリストなので、クラスのオブジェクトをフォーマットせずにリストとして表示できるはずです。ただし、as.listこれを行うようには見えません。

たとえば、fitが関数 によって適合されたモデルである場合glm:

> as.list(fit)

Call:  glm(formula = V4 ~ V3 + V2 + V1, family = Gamma, data = data)

Coefficients:
(Intercept)           V3           V2           V1  
      1.349        1.593        1.577        1.127  

Degrees of Freedom: 9999 Total (i.e. Null);  9996 Residual
Null Deviance:      2137 
Residual Deviance: 2048         AIC: -30180

一方、names関連付けられたリストの 30 個の名前を生成するなど、リストに適用される他の関数は正しく機能します。

また、他のリストと同じ方法で個々の要素を表示できます。

> fit$coefficients
(Intercept)          V3          V2          V1 
   1.349282    1.593067    1.576868    1.127067 

fitフォーマットせずにリスト形式で表示できる既存の関数はありますか?

上で述べたように、リストの名前を使用して独自の関数を作成することもできますが、そのような単純なタスクには不要のようです。

4

1 に答える 1

7

はリストfit ですが、 classglmを持っているので、自動印刷するとprint.glm()print メソッドがディスパッチされます。以下に示すようにas.list()、オブジェクトのクラスを保持するため、まったく役に立ちません。

fit <- glm(speed~dist, data=cars)  ## A silly example
class(fit)
# [1] "glm" "lm" 
class(as.list(fit))
# [1] "glm" "lm" 
exists("print.glm")
# [1] TRUE

次のいずれかがリストとして印刷fitされます。

unclass(fit)        ## Returns and immediately auto-prints object of class "list"
                    ## using print.default() 

print.default(fit)  ## Bypasses method dispatch, directly calling desired print
                    ## method
于 2013-06-24T20:28:41.740 に答える