我正在try 基于数据框中的数据聚合来标记我的facet_WRAP标题.
我正在编写一个函数来绘制不同的数据集,所以我使用一个函数参数来 Select 我想要分面的列.在本例中,我希望为broad
中的每个唯一类创建刻面,但希望刻面标签包含每个broad
类别的所有percBackground
个值的总和.
我试过使用Rlang {{}}
,但几乎没有成功(或理解).
data.test <- data.frame(broad = c("A", "A", "A", "B", "B", "C", "C", "C", "C"),
detail = c("a", "b", "c", "d", "e", "f", "g", "h", "i"),
sr.Summer = c(12, 23, 32, 12, 12, 11, 14, 15, 18),
percBackground = c(1.5, 4.3, 3.4, 4.6, 3.4, 4.1, 3.9, 2.9, 1.8))
func.test <- function(data, facet.by){
aggr <- data %>% aggregate(percBackground ~ facet.by, FUN = sum) %>%
mutate(label = paste0(facet.by, " - ", round(percBackground, digits = 2), "%"))
facet_label <- aggr$label
names(facet_label) <- unique(facet_label)
ggplot(data = data, aes(x = detail)) +
geom_point(aes(y = sr.Summer)) +
facet_wrap(~facet.by, labeller = labeller(facet.by = facet_label))
}
func.test(data = data.test,
facet.by = broad)
> Error in eval(predvars, data, env) : object 'broad' not found
13. eval(predvars, data, env)
12. eval(predvars, data, env)
11. model.frame.default(formula = by, data = x)
10. stats::model.frame(formula = by, data = x)
9. eval(m, parent.frame())
8. eval(m, parent.frame())
7. aggregate.formula(x = by, data = x, FUN = FUN, ...)
6. aggregate.data.frame(., percBackground ~ facet.by, FUN = sum)
5. aggregate(., percBackground ~ facet.by, FUN = sum)
4. aggregate(., percBackground ~ facet.by, FUN = sum)
3. mutate(., label = paste0(facet.by, " - ", round(percBackground,
digits = 2), "%"))
2. data %>% aggregate(percBackground ~ facet.by, FUN = sum) %>%
mutate(label = paste0(facet.by, " - ", round(percBackground,
digits = 2), "%"))
1. func.test(data.test, broad)