当我在一个包中使用一个函数时,我经常可以用function()
或function
形式编写它而不用括号。 scales::comma
似乎不是这种情况。为什么第7行在下面工作,而第8行则不工作。
library(tidyverse)
mtcars %>%
count(cyl) %>%
ungroup() %>%
mutate(n = n * 1000) %>%
ggplot(aes(cyl, n)) +
scale_y_continuous(labels = scales::comma) + # line 7
# scale_y_continuous(labels = scales::comma()) + # line 8
geom_line()
LINE 8错误
Error in number(x = x, accuracy = accuracy, scale = scale, prefix = prefix, :
argument "x" is missing, with no default
这是从scale_y_continouos
关于输入参数labels
的帮助页面中获取的:
标签之一:
在这种情况下,最后一个是重要的一个。标签期望scales::comma
的功能。另一方面,scales::comma()
是该函数返回的函数,但不再是函数。