在R中,符号~代表的是公式运算符。

9 浏览
0 Comments

在R中,符号~代表的是公式运算符。

我在Lattice和ggplot2中经常看到这个符号。看起来它是用来表示两个变量之间的关系的。它只存在于这两个图形包中,还是在R中有定义?它的解释是什么?

例如:

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

0
0 Comments

在R中,符号~的作用是用来表示公式。公式的一般形式是LHS ~ RHS,其中LHS和RHS分别表示左侧和右侧的变量或表达式。在不同的函数调用中,公式的解释会有所不同,因此需要阅读特定调用的文档来了解其含义。

例如,在aggregate函数中使用公式时,表示的意思是"按照mtcars数据集中的cyl变量对mpg进行分组,并计算每个组的均值"。具体示例如下:

aggregate(mpg~cyl,mtcars,mean)

# cyl mpg

# 1 4 26.66364

# 2 6 19.74286

# 3 8 15.10000

另外,在lm函数中使用公式时,表示的意思是"拟合一个线性模型mpg = b0 + b1*wt + b2*hp + b3*disp"。需要注意的是,不需要明确指定系数b的值。具体示例如下:

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

# ...

在xyplot函数中,公式的意思是"在mtcars数据集中,使用wt变量绘制mpg的散点图"。具体示例如下:

library(lattice)

xyplot(mpg~wt,mtcars)

最后,可以将一个公式赋值给一个变量,然后在后续的函数调用中使用该变量作为公式参数。具体示例如下:

myFormula <- mpg~hp+wt+disp

fit <- lm(myFormula,mtcars)

0