在 R 中指定公式的方法有很多冗余,有时甚至是相互冲突的。对于将概念模型映射到 R 语法是否有一个全面而简洁的引用,而不是 ?formula
?
我对广泛的概述感兴趣,包括用于在非线性和分层模型中指定公式的语法,例如 glm
, lmer
, gam
, earth
, 包括 (/
) 用于嵌套, random
和 fixed
混合模型中的效果,以及 s
和 te
用于样条曲线,以及在流行的贡献包中找到的其他内容。
最佳答案
R 附带了几本手册,可在运行 R 时从右上角的 vanilla R 的“帮助”菜单访问,并且在线上的多个地方也有这些手册。
例如,“An Introduction to R”的第 11 章有几页关于公式的内容。
我不知道它是否构成“综合”资源,但它涵盖了您需要了解的有关公式如何工作的大部分内容。
* 事实上,几乎所有可能 95% 的用户都会使用的东西
S 语言中对公式的规范引用可能是
Chambers J.M. 和 Hastie T.J. 编辑。 (1992),
伦敦 S. Chapman & Hall 的统计模型。
尽管该方法的起源来自
威尔金森 G.N. 和罗杰斯 C.E. (1973)。 “用于方差分析的因子模型的符号描述。”应用统计, 22 , 392–399
最近的一些与 R 相关的书籍讨论了公式,但我不知道我会称其中任何一本为综合性的。
还有许多在线资源(例如 here),通常包含大量非常有用的信息。
也就是说,一旦您习惯了在 R 中使用公式,并且有了可以放置更多知识的上下文,帮助页面就会包含大量信息(以及它链接到的其他页面)。它有点简洁和神秘,但是一旦您对 R 的特定工作方式有了更广泛的知识基础,它就会非常有用。
与 R 公式相关的特定问题(取决于它们的内容)可能会成为 StackOverflow 或 CrossValidated 的主题 - 实际上已经找到了一些与公式相关的非常高级的问题(使用像 [r] formula
这样的搜索可能会很有成效),并且有更多这样的问题可以方便地帮助用户解决这些问题;如果您有具体问题,我鼓励您提出。
至于“冗余”和“冲突”,我想你的意思是这样一个事实,即指定无拦截模型的方法不止一种:y ~ . -1
和 y ~ . +0
例如,两者都有效,但在略有不同的上下文中,每个都有意义。
此外,还有一个常见的问题是必须从公式接口(interface)中分离出二次项和高阶项(使用 I(x^2)
作为预测因子,因此它可以毫发无伤地通过公式接口(interface),并且存活得足够远,可以解释为代数表达式)。同样,一旦您了解“幕后”发生的事情,这似乎就不那么令人讨厌了。
我刚才提到的事情的具体例子:
lm(dist ~ . -1, data=cars) # "remove-intercept-term" form of no-intercept
lm(dist ~ . +0, data=cars) # "make-intercept-zero" form of no-intercept
lm(dist ~ speed + speed^2, data=cars) # doesn't do what we want here
lm(dist ~ speed + I(speed^2), data=cars) # gets us a quadratic term
lm(dist ~ poly(speed,2), data=cars) # avoid potential multicollinearity
我同意公式界面至少可以在
?formula
中使用一些进一步的指导和更好的示例。帮助。
关于r - r 公式是否有比 ?formula 更好的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16313109/