ロジスティック回帰モデルを持つrda
ファイルがあります。 glm
で使用されている独立変数のデータ型が何であるかを知りたければ、他のものを脇に置いておくとどうすればよいでしょうか?たとえば、Y~ X1+X2+X3
の場合、X1
、X2
、およびX3
のデータタイプはどのように知っていますか?この時点では、データ型を調べるデータフレームがありません。どんな助力も高く評価されます。元のデータフレームにアクセスせずに回帰モデルで変数のクラスを調べる
答えて
私は最初にもっと便利なものを提供したいと思います。 $terms
をチェックするのはどうですか?あなたの質問にのみデータクラスを特定する言及しているので
## or `attr(terms(fit), "dataClasses")`
attr(fit$terms, "dataClasses")
# mpg qsec factor(am) wt factor(gear)
# "numeric" "numeric" "factor" "numeric" "factor"
(例として、以下のfit
を使用することで)、これで十分です。しかし、変数のデータにアクセスする場合は、$data
をチェックしてください。 これはglm
がlm
と異なる方法です。 glm
はlm
よりも多くのものを返します。これにはdata
引数が含まれます。注:lm
はdata
を返しません。 model.frame
にもう少し
ほとんどの場合、model.frame
は最高の手順です。しかし、気をつけて使用してください。 is.data.frameで
dat <- mtcars
fit <- glm(mpg ~ qsec + factor(am) + wt + factor(gear),
data = dat, model = FALSE)
rm(dat)
model.frame(fit)
エラー(データ):オブジェクトのDAT "
これは私がOPの質問の下にコメントで説明したものですが見つかりません:$model
はNULL
がない場合には、 model.frame
は単にそれを抽出します。しかし、実際にはNULL
なら、model.frame
はそれを再構築することを目指しています。しかし、それを再構築するには、元のデータフレームにアクセスする必要があります。元のデータフレームが利用できない場合、何も得られません(ただし、エラーが発生します)。これを理解するために
、model.frame
は(S3)一般的な関数であることに注意してください:モデルオブジェクトから
.S3methods("model.frame")
#[1] model.frame.aovlist* model.frame.default model.frame.glm*
#[4] model.frame.lm*
model.frame.lm
とmodel.frame.glm
単純抽出$model
($model
が存在する場合)。それ以外の場合は、モデル式と元のデータフレームからモデルフレームを構築するためにmodel.frame.default
を呼び出します。
正当な理由があります。私は特定のシナリオに遭遇したことがなく、その結果を考えなかったようです。私はまだ 'model.frame'を主張しています。なぜなら' model = FALSE'の場合でもデータフレームへのアクセス権があるからです。 '$ model'は' NULL'を返します。この質問の文脈に違いはありませんが、それ以外の文脈では違います。 – Benjamin
attr(fit $ terms、 "dataClasses")は私の直接の問題を解決しました。私は余分な説明を感謝します。それは私がいくつかの事をもっとクリアするのを助けました。 –
- 1. 複数ロジスティック回帰モデルで予測変数の影響が逆になる
- 2. Spark DataFrame APIロジスティック回帰モデルの代入を調整する
- 3. scikitで異なるフィーチャ次元を持つロジスティック回帰モデルlearn
- 4. Emberjsモデルを作成せずにクラス/コンストラクタの属性にアクセスする方法
- 5. RでXGBoostを回帰モデルに使用
- 6. ペリカンの変数を調べるには
- 7. 変数に格納せずに匿名の外部クラスにアクセスしますか?
- 8. クラスを継承せずにクラスのプロパティにアクセスする
- 9. SciKit Learn - 線形回帰の背後にある数学モデル?
- 10. 2つの回帰予測モデル(データフレームのサブセット付き)をデータフレーム(1つの列)に戻します。
- 11. Rでの線形回帰すべてのレコードを回帰式にする
- 12. 元の.hまたは.mファイルを変更せずにクラスにプライベート変数を追加する方法
- 13. 回帰:変数の影響
- 14. クラスのインスタンスを使用せずにjavascriptクラスのstaticプロパティにアクセス
- 15. Pythonのクラス変数の名前を変更せずに
- 16. インスタンス変数を使用せずにメソッドループ内の変数にアクセスするruby
- 17. PHP - クラスのすべての関数でグローバル変数にアクセスする
- 18. カフェ回帰モデルを導入
- 19. 元のクラスを変更せずに自分のクラスにプロパティを追加する方法
- 20. セルに元の内容を削除せずに変数を割り当てる
- 21. Cocoaの別のクラスの変数にアクセスできません
- 22. Javaの別のクラスの変数にアクセスできませんか?
- 23. Sitecore MVC、コントローラがモデルを作成せずにアイテムフィールドにアクセスする
- 24. 次元を変更せずに文字から数値に変更する
- 25. Matlabリッジ回帰次元
- 26. 回帰rのデータフレーム列の組み合わせ
- 27. モデルを変更せずにFlask-Adminでモデル表現を変更する
- 28. どのように異なる回帰モデルを適用する
- 29. クラスのプライベート変数にアクセスするC++
- 30. クラスオブジェクトを変更せずに調べる必要があります
データフレームにアクセスできないということを正確にはわかりませんが、オブジェクトのデータ型を理解する典型的な方法は、 'class()'を使うことです。たとえば 'var < - " foobar "; class(var) 'は' [1] '文字を返します。あなたはおそらくRでRdataファイルをロードする必要があるでしょうし、次に 'str()'でglmオブジェクトの内容をチェックし、 'class(glm $ X1)'のようなものを試すことができます。 – user5359531
@ZheyuanLi '$ model'に依存しないことをお勧めします。関数呼び出しで' model = FALSE'が使用された場合は 'NULL'を返します。 'model.frame'(以下の私の答えを見てください)はまだ動作します。 – Benjamin