我正在研究Hadley Wickham的“ R for Data Science”,他在ggplot调用中使用~var
。
我了解y ~ a + bx
,其中~
描述了因变量和自变量之间的公式/关系,但是~var
是什么意思?更重要的是,为什么不能仅将变量本身放置?参见下面的代码:
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_wrap(~ class, nrow = 2)
或
demo <- tribble(
~cut, ~freq,
"Fair", 1610,
"Good", 4906,
"Very Good", 12082,
"Premium", 13791,
"Ideal", 21551
)
ggplot(data = demo) +
geom_bar(mapping = aes(x = cut, y = freq), stat = "identity")
答案 0 :(得分:2)
这是facet_wrap
特有的语法,其中可以给出一个公式作为变量关系的输入。在第一个参数的文档中,facets
:
一组由vars()和 在行或列维度上定义构面组。的 变量可以被命名(名称被传递给labeller)。对于 与经典界面的兼容性,也可以是公式或 字符向量。使用单侧公式'〜a b或a 字符向量,c(“ a”,“ b”)'。
所以我认为您现在可以只给出不带波浪号的变量名,但是您曾经需要使用波浪号来提供单侧公式。
答案 1 :(得分:2)
ggplot
只是利用formula
结构来让用户决定要处理的变量。来自?facet_grid
:
为了与经典界面兼容,行也可以是一个公式,其中LHS上的(表格显示)行和RHS上的(表格显示)列;公式中的点用于指示此尺寸(行或列)上不应有小平面。
因此,facet_grid(. ~ var)
仅意味着在变量var
上刻面网格,这些刻面分布在列上。与facet_grid(col = vars(var))
相同。
尽管看起来像formula
,但实际上并没有用作公式:它只是一种以facet_grid
代码可以清楚而明确地解释的方式向R提供多个参数的方式。 / p>