Rプログラミング言語での〜(チルド)の使用


187

私は次のコマンドをモデル化する回帰についてのチュートリアルで見ました:

myFormula <- Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width

このコマンドは正確には何をし~ますか?また、コマンドでの(チルダ)の役割は何ですか?


チュートリアルへのリンクを共有しますか?面白そう。
cheesus 2013

1
@cheeesus ...私はケーススタディでRの電子ブックデータマイニングを行っていました...そのような興味深い例がもっとたくさんあります。
Ankita

回答:


193

右の上の事が<-あるformulaオブジェクト。統計モデルを表すためによく使用されます。左側のもの~が応答で、右側のもの~が説明変数です。したがって、英語では「種は、長さ、幅、花弁の長さと花弁の幅に依存する」のようになります。

myFormula <-その行の一部は、式をと呼ばれるオブジェクトに格納するmyFormulaため、Rコードの他の部分で使用できます。


Rでの数式オブジェクトの他の一般的な使用法

latticeパッケージには、それらを使用してプロットする変数を指定します。パッケージには、それらを使用してプロットするためのパネルを指定します。パッケージには、のためにそれらを使用する非標準evaulation
ggplot2
dplyr



lazyevalビネットの「数式」セクションでは、数式とは何かを紹介しています
RobinL

82

Rは、~数式で使用する(チルダ)演算子を定義します。数式にはさまざまな用途がありますが、おそらく最も一般的なのは回帰です。

library(datasets)
lm( myFormula, data=iris)

help("~") または help("formula")あなたにもっと教えます。

@Spacedmanが基本をカバーしました。それがどのように機能するかを議論しましょう。

最初に、演算子であることは、基本的には関数へのショートカット(2つの引数を持つ)であることに注意してください。

> `~`(lhs,rhs)
lhs ~ rhs
> lhs ~ rhs
lhs ~ rhs

これは、たとえばで使用するために知っておくと役立ちます apply家族のコマンドます。

次に、数式をテキストとして操作できます

oldform <- as.character(myFormula) # Get components
myFormula <- as.formula( paste( oldform[2], "Sepal.Length", sep="~" ) )

第三に、あなたはそれをリストとして操作することができます:

myFormula[[2]]
myFormula[[3]]

最後に、数式にはいくつかの役立つトリックがあります(詳細についてはhelp("formula")、を参照してください)。

myFormula <- Species ~ . 

たとえば、ドットは「まだ使用されていないすべての変数」を意味するため、上記のバージョンは元のバージョンと同じです。これは、最終的なモデル呼び出しで使用するdata.frameを調べ、data.frameに存在するが式で明示的に言及されていない変数を確認し、ドットをそれらの欠落している変数に置き換えます。


@Ari B. Friedmanの回答に感謝しますが、「ドットは「まだ使用されていないすべての変数」を意味する」と言う最後の行は少しあいまいです。あなたはそれをさらに説明することができれば。
アンキタ

9
@Ankita、この文脈で「まだ使用されていない」とは、言及されていないことを意味します。ではSpecies~.、種は使用された唯一の変数です。したがって、data.frame内の他のすべての変数に依存します。
x4nd3r 2013年

わからないmyFormula <- Species ~ . 。ドットがまだdata.frameからの変数で置き換えられるのはいつですか?例を挙げてください
srghma
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.