R`scales :: comma`有效,而`scales :: comma()`不起作用-为什么?

时间:2019-04-14 17:29:07

标签: r ggplot2 scale

当我在包中使用函数时,通常可以用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

1 个答案:

答案 0 :(得分:4)

这取自scale_y_continouos的有关输入参数labels的帮助页面:

标签之一:

  • 没有标签则为
  • waiver()表示由转换对象计算的默认标签
  • 给出标签的字符向量(长度必须与断点相同)
  • 一个功能,该功能以中断作为输入,并返回标签作为输出

在这种情况下,最后一个是重要的。 标签期望使用scales::comma是的功能。另一方面,scales::comma()是该函数返回的内容,但现在不再是该函数。