這裏的問題是如何解釋公式。在公式中,代字號將左手側和右手側分開。在公式中,^
運算符用於構建交互作用,使得x
= x^2
= x^3
而不是可能期望的數學能力。如果您輸入了(x+y)^2
,則R解釋程序將生成(爲了其自身良好的內部使用),而不是數學:x^2 +2xy +y^2
,而是符號:x + y +x:y
其中x:y
是一個交互項。
?formula
的I()
函數的作用是爲「as.is」,即你所期望的參數轉換。所以我(x^2)會返回一個向量,其值爲第二次方。
~
應該被認爲是在迴歸函數中看到的「分佈爲」或「依賴於」。它意味着模型描述中的錯誤術語,通常將其標記爲「(截取)」,並且函數上下文和參數還可以進一步確定鏈接函數,例如log()或logit()。
在plot()函數中,它基本上顛倒了plot函數通常需要的通常的參數(x, y)
的順序。寫了一個plot.formula方法,以便公式可以用作與R進行通信的更「數學」模式。在graphics::plot.formula
,curve
和'lattice'和'ggplot'函數中,它控制着多個因子或數值向量被顯示並且「切面」。
我後來知道~
實際上是一箇中綴(或前綴)原始函數,它創建一個R'調用',它可以使用列表提取操作符來訪問。所有這些對於典型用戶來說都是隱藏的,但它可以是更多高級功能作者使用的工具。
「+」運算符的重載在下面的註釋中討論,也在繪圖軟件包中完成:ggplot2和gridExtra它在哪裏分離傳遞對象結果的函數,因此它作爲代理並作爲傳遞和分層運算符。具有公式方法的聚合函數使用「+」作爲「排列」和分組操作符。
對這個問題的任何優秀答案都會嚴重影響'?公式'中包含的內容。 – joran
重複;我們應該關閉其中的一個,並使其他規範:[R線性迴歸公式中的大寫字母「I」是什麼意思?](http://stackoverflow.com/questions/24192428/capital-letter-i-in- r-linear-regression) – smci