我正在浏览Hadley Wickham的"R for Data Science",他~var在ggplot调用中使用它.
我理解y ~ a + bx,在哪里~描述了依赖变量和自变量之间的公式/关系,但是什么~var意思呢?更重要的是,为什么你不能只把变量本身?见下面的代码:
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_wrap(~ class, nrow = 2)
Run Code Online (Sandbox Code Playgroud)
要么
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")
Run Code Online (Sandbox Code Playgroud)
它是特定于 的语法facet_wrap,其中可以给出公式作为变量关系的输入。从第一个参数的文档来看facets, :
由 vars() 引用并在行或列维度上定义分面组的一组变量或表达式。变量可以被命名(名称被传递给贴标机)。为了与经典界面兼容,也可以是公式或字符向量。使用单边公式 '~ab 或字符向量 c("a", "b")'。
所以我认为你现在可以只给出没有波浪号的变量名称,但你过去需要给出一个带有波浪号的单边公式。
它只是ggplot利用formula结构让用户决定要处理哪些变量。来自?facet_grid:
为了与经典界面兼容,行也可以是一个公式,在LHS(表格显示的)行和RHS(表格显示的)列;公式中的点用于表示该维度(行或列)上不应有分面。
所以facet_grid(. ~ var)只是意味着在变量上对网格进行分面var,分面分布在列上。它与facet_grid(col = vars(var)).
尽管看起来像 a formula,但它并没有真正用作公式:它只是一种以facet_grid代码可以清楚无误地解释的方式向 R 呈现多个参数的方式。