使用数据框中的标志添加垂直线

Adding a vertical line by using a flag in the data frame

我有一个数据框如下:

df<-
 FORM  TIME   CONC  
  0     1      5
  0     2      10 
  0     5      11
  1     6      14
  1     7      15

我正在策划 TIMECONC。当公式从 FORM 1 更改为 FORM 2 时,我想在 TIME 处添加一条垂直线。我想编写绘图代码,以便它可以检测公式何时自动更改。

下面的ggplot行应该怎么写:

plotobj <- plotobj + vline(aes(slope = 1, intercept = ??), linetype = "dashed", size = 1)

如果我没看错,这应该会有所帮助:

库(ggplot2)

df = data.frame(FORM=c(0,0,0,1,1),TIME=c(1,2,5,6,7),CONC=c(5,10,11,14,15))

ggplot()+
   geom_line(data=df,aes(x=TIME,y=CONC))+
   geom_vline(xintercept = min(df$TIME[grep(1,df$FORM)]), linetype = "dashed", size = 1)

真正重要的是:

min(df$TIME[grep(1,df$FORM)])

grep 为所有等于 1 的 FORM 值给出索引。我们提取这些值并使用 min 从具有最小值 TIME 的行中选择一个.最后使用这个索引,我们从 df$TIME.

中选择相应的值