220

回帰モデリングに関するチュートリアルで、次のコマンドを見ました。

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

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

4

3 に答える 3

222

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

その行の部分は、R コードの他の部分で使用できるようにmyFormula <-、呼び出されたオブジェクトに式を格納します。myFormula


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

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

于 2013-02-20T09:35:03.090 に答える
89

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="~" ) )

第三に、それを list として操作できます:

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

最後に、数式を使用した便利なトリックがいくつかあります (詳細については、を参照help("formula")してください)。

myFormula <- Species ~ . 

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

于 2013-02-20T11:34:29.147 に答える
6

一言で、

The tilde(~) separates the left side of a formula with the right side of the formula.

たとえば、線形関数では、従属変数を独立変数から分離し、「の関数として」と解釈できます。したがって、教育年数 (years_of_education) の関数として人の賃金 (wages) を計算する場合、次のようにします。

wages ~ years_of_education

ここ、

 Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width

Speciesの関数である ことを意味しますSepal Length, Sepal Width, Petal Length and Petal Width

于 2021-03-21T04:22:40.960 に答える