在 ggplot 图层中引用管道数据集以进行子集化

Referencing piped dataset in ggplot layers for subsetting

试图找到一种方法来为不同的 ggplot2 geom 图层引用数据集的不同部分,而不必先在全局环境中保存数据集。

Ex 无效解决方案。

read_excel("Book1.xlsx",sheet = "Sheet2") %>% 
  ggplot(aes(x,y)) +
  geom_col() +
  geom_point(data=subset($ID == "1"),colour="red")

以上似乎不起作用,因为我没有以 R 可以识别的方式引用管道(magrittr)数据集。我已经搜索过,但我能看到的唯一解决方案是基于我首先将数据集保存在全局环境中的解决方案

首先保存数据集的工作解决方案。

df <- read_excel("Book1.xlsx",sheet = "Sheet2")

  ggplot(df,aes(x,y)) +
  geom_col() +
  geom_point(data=subset(df,ID == "1"),colour="red")

您可以尝试使用 dplyr:

library(dplyr)
library(ggplot2)

read_excel("Book1.xlsx",sheet = "Sheet2") %>% 
  ggplot(aes(x, y)) +
  geom_col() +
  geom_point(data = . %>% filter(ID == "1"), colour = "red")