提问人:Joost Keuskamp 提问时间:6/14/2023 最后编辑:Joost Keuskamp 更新时间:7/9/2023 访问量:77
将 ggplot2::stat_summary 与 R 中的单位一起使用时出现问题
problem using ggplot2::stat_summary with units in R
问:
对具有定义单位的值使用stat_summary时收到错误。该代码适用于无单位数据。有什么建议吗?
library(tidyverse)
library(units)
tb <- tibble(a=1:8 %>% set_units(kg),b=1:8)
tb_unitless <- drop_units(tb)
现在,在没有单位的情况下,使用平均线创建绘图可以正常工作:
ggplot(tb_unitless,aes(x=b,y=a)) +
stat_summary(fun = "mean", geom="hline",aes(yintercept=after_stat(y)))
但由于某种原因,不适用于单位的 Tibble:
ggplot(tb,aes(x=b,y=a)) +
stat_summary(fun = "mean", geom="hline",aes(yintercept=after_stat(y)))
返回:
Error in `stat_summary()`:
! Problem while mapping stat to aesthetics.
ℹ Error occurred in the 1st layer.
Caused by error in `UseMethod()`:
! no applicable method for 'drop_units' applied to an object of class "c('double', 'numeric')"
如果我没记错的话,这在过去确实有效——这是一个错误,还是我做错了什么?
答: 暂无答案
评论
geom_hline
ggplot(tb,aes(x=b,y=a)) + stat_summary(aes(color = after_stat(y)), fun = "mean", geom = "point")
ggplot(tb,aes(x=b,y=a)) + stat_summary(fun = "mean", geom="hline",aes(yintercept=after_stat(y %>% set_units(kg)), x = mean(.data[['b']])))
hline