我有一些嘈杂的数据要分析。以这里的数据为例。
set.seed(98765)
A <- seq(0, 3, 0.01)
B <- round(exp(A),digits = 2)
B <-round(ifelse(B>1.5, jitter(B, factor = 200),B),digits = 2)
#
C <-seq(3,3.5,0.01)
D <- rep(B[301],51)
D <-round(jitter(D, factor = 0.8),digits = 2)
#
E <-seq(3.5,4,0.01)
Ff <- rep(D[51],51)
Ff <-round(jitter(Ff, factor = 1.3),digits = 2)
#
G <- seq(4,5, 0.01)
H <- (-10*G)+60
H <- round(jitter(H, factor = 50),digits = 2)
#
I <- seq(5,6,0.01)
J <- 5*I-15
J <- round(jitter(J, factor = 50),digits = 2)
#
K <- seq(6,8,0.01)
L <- (-2*K)+27
L <- round(jitter(L, factor = 40),digits = 2)
#
X <- c(A,C,E,G,I,K)
Y <- c(B,D,Ff,H,J,L)
#
df1 <- data.frame(X,Y)
ggplot(df1, aes(X,Y))+geom_point()
因此,在绘制之后,我们会看到一个局部最小值出现在x=5
我们达到局部最大值的前后不久。
如何获得这个局部最大值的两个最大 Y 值?
我可以通过指定一个x约束(对应于最小值)来获得最大值,但是在我的数据中,实际位置发生了变化,但形状的形式保持不变。
## max value
## max(df1$Y[df1$X>5])