R`scale ::逗号`工作但是`scales :: comma()`没有 - 为什么?

问题描述 投票:0回答:1

当我在一个包中使用一个函数时,我经常可以用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
r ggplot2 scale
1个回答
4
投票

这是从scale_y_continouos关于输入参数labels的帮助页面中获取的:

标签之一:

  • 没有标签的NULL
  • waiver()用于由转换对象计算的默认标签
  • 给出标签的字符向量(必须与断点长度相同)
  • 将中断作为输入并将标签作为输出返回的函数

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

© www.soinside.com 2019 - 2024. All rights reserved.