r - R `scales::comma` 工作但 `scales::comma()` 不工作 - 为什么?
问题描述
当我在一个包中使用一个函数时,我通常可以将它写成表格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()
第 8 行错误
Error in number(x = x, accuracy = accuracy, scale = scale, prefix = prefix, :
argument "x" is missing, with no default
解决方案
这取自scale_y_continuous
有关输入参数的帮助页面labels
:
标签 之一:
- NULL 表示没有标签
- waiver() 用于转换对象计算的默认标签
- 给出标签的字符向量(必须与中断的长度相同)
- 将中断作为输入并返回标签作为输出的函数
在这种情况下,最后一个是重要的。Labels 需要一个函数scales::comma
。scales::comma()
另一方面是该函数返回但不再是函数的内容。
推荐阅读
- string - How to merge string options to a single string option in fsharp?
- vue.js - 在 Vue.js 中使用组合 API 扩展组件
- oracle - 将散列字符串 (SHA512) 从一个 Oracle DB 迁移到另一个?
- android - Unity 游戏未正确配置为使用 google play 游戏服务
- vba - 如何遍历 VBA 中的文本格式?
- c - C - 我的循环递减工作,但不确定为什么
- angular - 控制生成的内容 - *ngIf 的编译/编译时间版本
- javascript - Apex 图表跳过一些具有相同值的数据点
- arrays - 如果可能存在重复值和缺失值,您将什么称为“子列表”?
- r - 使用R从字符变量中提取最小值和最大值