Rでは、数式オブジェクトはシンボリックであり、解析するのが難しいようです。しかし、私は、例えば、f
まかせ Rを使用して外部使用の記号式を解釈する
(1)
R.外の使用のための標識の明示的なセットに、このような式を解析する必要がある応答が指定されていないmodel formulaeを表します~V1 + V2 + V3
、私が試した一つのことでした:
t <- terms(f)
attr(t, "term.labels")
f
の変数のいくつかは、カテゴリいる場合しかし、これはまさに、明示的であるものを取得していません。たとえば、V1
を2つのカテゴリ(ブール値)を持つカテゴリ変数とし、V2
を2倍にするとします。
したがって、~V1:V2
で指定されたモデルには、2つのパラメータ、「intercept」と「xyes:z」が必要です。一方、~V1:V2 - 1
で指定されたモデルは、パラメータ "xno:z"と "xyes:z"を持つ必要があります。しかし、どの変数がカテゴリ(およびいくつのカテゴリ)であるのかをファンクションを知らせる方法なしでは、これらを解釈する方法がありません。代わりに、がカテゴリに属するという意味で何も意味しない、「terms.labels」にはV1:V2
があります。 model.matrix
を使用して一方
(2)
は、まさに私が欲しいものを得るための簡単な方法です。問題は、data
引数が必要だということです。私は、Rの外部で使用するために記号式を明示的に解釈したいので、私にとっては悪いです。この取得方法は、Rが読む必要があるため(比較的)外部ソースからのデータは、どの変数がカテゴリ(およびいくつのカテゴリ)であり、どの変数が2倍であるかということが、実際に式を知る必要があるときです。
実際のデータではなく、データの種類のみを指定して 'model.matrix'を使用する方法はありますか?そうでない場合、他に実行可能な解決策は何ですか?
お返事ありがとうございます。私は実際のデータセットを持っていますが、それを読むことは効率を低下させるので、それは大きくて外部Rです。あなたが最初の部分で持っていたものは素晴らしかったが、私が理解していないことの1つは、 'model.matrix(f、data = V1Factor)'は関連する3つのパラメータを生成し、インターセプトです。 –
Rは、インタラクションが存在するときに低次のパラメータを削除することを嫌っていることが知られています。おそらくその理由は次のとおりです。http://stackoverflow.com/q/11335923/289572 – Henrik
@JonClaus私は、 「V1」が「いいえ」のときの「V2」の傾き、「V1」が「はい」のときの「V2」の傾き(ここでパラメータ化される方法)を含む。切片で3つのパラメータ、「V1」が「いいえ」のときの「V2」の傾き、「V1」が「いいえ」から「はい」に変化するときの「V2」の傾きの変化を得ることもできる。あなたはそれをパラメータ化しますが、3つのパラメータがあります。 –