我的数据框如下:
df<-
FORM TIME CONC
0 1 5
0 2 10
0 5 11
1 6 14
1 7 15
我正在密谋TIME
与CONC
。当配方从TIME
更改为FORM 1
时,我想在FORM 2
处添加一条垂直线。我想制作用于绘图的代码,以便它可以检测配方何时自动更改。
我应该如何在下面的ggplot行中编写它:
plotobj <- plotobj + vline(aes(slope = 1, intercept = ??), linetype = "dashed", size = 1)
答案 0 :(得分: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
为所有FORM
值提供等于1的索引。我们使用TIME
提取这些值并使用min
的最小值从行中选择一个。最后使用此索引,我们从df$TIME
中选择相应的值。