我可以使用function(y) comma(y)
在scale_y_continuous()中调用匿名函数,但不能使用〜约定来调用匿名函数。在这种情况下可以使用〜吗?
library(scales)
library(ggplot2)
mtcars$model <- rownames(mtcars)
# Success
ggplot(mtcars[1:3,], aes(x = model, y = wt*2000)) +
geom_col() +
scale_y_continuous(labels = function(y) comma(y))
# Fail
ggplot(mtcars[1:3,], aes(x = model, y = wt*2000)) +
geom_col() +
scale_y_continuous(labels = ~comma(y))
最佳答案
一个选项是包装在purrr::as_mapper
中
library(scales)
library(ggplot2)
library(purrr)
ggplot(mtcars[1:3,], aes(x = model, y = wt*2000)) +
geom_col() +
scale_y_continuous(labels = as_mapper(~ comma(.)))
或使用
rlang::as_function(~ comma(.))
或者直接使用
comma
而不进行任何匿名函数调用ggplot(mtcars[1:3,], aes(x = model, y = wt*2000)) +
geom_col() +
scale_y_continuous(labels = comma)