【问题标题】:What is the symbol ~ for in R? [duplicate]R中的符号〜是什么? [复制]
【发布时间】:2014-04-09 16:53:48
【问题描述】:

我有时会看到这个符号,尤其是在 Lattice 和 ggplot2 中。似乎是为了关联两个变量来表示一个关系。它是仅在两个图形包中还是在 R 中定义?它的解释是什么?

例如

cars <- read.csv("cars.csv", row.names=1)
library(lattice)
xyplot(Price ~ Weight, data=cars)
histogram( ~ Weight, data=cars)

【问题讨论】:

  • 要获得 R 中符号的帮助,请在命令提示符处使用 ?'~'
  • 它在图形之外有多种使用方式......例如lm(Price ~ Weight),一定要看说明书
  • 哦,谢谢!我不知道我需要在运算符上使用引号
  • 两个泰勒 = 令人困惑
  • @jlhoward 投反对票的原因之一是“缺乏研究努力”。然而,什么算作如此基本以至于“合理”的努力会回答它是非常主观的,所以你对任何给定的问题都会有不同的判断。有些人可能认为通过一些基础研究很容易回答这个问题。

标签: r


【解决方案1】:

R 支持一种称为“公式”的特殊数据类型,它具有一般形式

LHS ~ RHS

尽管并非总是需要 LHS。关于如何指定 LHS 和 RHS 以及它们的含义有一些规则(请参阅?formula)。

公式的解释取决于函数调用,因此您需要阅读特定调用的文档。例如,在

aggregate(mpg~cyl,mtcars,mean)
#   cyl      mpg
# 1   4 26.66364
# 2   6 19.74286
# 3   8 15.10000

该公式的意思是“在 mtcars 中按 cyl 对 mpg 进行分组并计算每个组的平均值”。

另一方面,当用于lm(...)

fit <- lm(mpg~wt+hp+disp,mtcars)
summary(fit)
# ...
# Coefficients:
#              Estimate Std. Error t value Pr(>|t|)    
# (Intercept) 37.105505   2.110815  17.579  < 2e-16 ***
# wt          -3.800891   1.066191  -3.565  0.00133 ** 
# hp          -0.031157   0.011436  -2.724  0.01097 *  
# disp        -0.000937   0.010350  -0.091  0.92851    
# ---
# ...

表示“拟合线性模型 mpg = b0 + b1*wt + b2*hp + b3*disp”。请注意,您没有指定 b。

xyplot(...)

library(lattice)
xyplot(mpg~wt,mtcars)

公式的意思是“在 mtcars 中绘制 mgp vs wt”。

最后,您可以将变量设置为公式,如

myFormula <- mpg~hp+wt+disp
fit <- lm(myFormula,mtcars)

【讨论】:

    猜你喜欢
    • 2021-02-19
    • 2018-01-20
    • 2016-02-24
    • 2016-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    相关资源
    最近更新 更多