没有左侧的Tilde操作员

时间:2017-08-04 07:22:52

标签: r formula tilde

<img expr:src='data:post.thumbnailUrl'/>

我找到了许多关于rxHistogram(~fare_amount, data = inDataSource, title = "Fare Amount Histogram") 运算符用于什么的答案,但答案中的运算符总是有左侧。如果没有怎么办?样本取自here

1 个答案:

答案 0 :(得分:1)

  

“左侧是可选的,在某些情况下使用单侧公式。” (?`~`

如果您比较以下两个图表示例,您会看到图表彼此不同。虽然第一个图显示carat值的水平密度分布,但第二个图使用每行的索引来绘制carat值。

plot(~carat, data = ggplot2::diamonds, main = "With tilde", pch = 15, col = "#00000010")
plot(ggplot2::diamonds$carat, main = "NO tilde", pch = 15, col = "#00000010")

但是,在 some (参见上面的引用)上下文中,例如线性模型,左侧不是可选的,缺少它会导致错误:

lm(~carat, data = ggplot2::diamonds)
  

Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) : incompatible dimensions

在像lm这样的情况下,使用波浪号来表达公式(在这种情况下是依赖变量或独立变量)。正如我们在?formula中看到的那样:

  

~运算符是形成此类模型的基础。y ~ model形式的表达式被解释为响应y由{{符号指定的线性预测变量建模的规范。 1}}。“

我们也可以看到(model):

  

“数据框有一个公式方法。如果只有一列,则形成一个空LHS的RHS。对于更多列,第一列是公式的LHS,其余列以{{1分隔形成RHS。“

对于您的特定MS示例:

?formula function description表示:

  

“它应采用+的形式,其中rxHistogram~x|g1 + g2是可选的条件因素变量,而g1是变量的名称或者在...上fly factorization g2。不支持x的其他表达式。“