Определение точек на кривой
Я чувствую, что это простой вопрос...
Как вы определяете координаты на фигуре? Я нанес на график некоторые данные, использовал unireg (пакет uniReg), чтобы сделать кривую сплайна, и хочу вытащить данные из точки.
library(uniReg)
P0mM <- read.table(text="
Time FeuM
0.04 138.8181818
7 1258.636364
14 1320.545455
21 2110.37037
28 13730.37037
35 1550.909091",header=TRUE)
z=seq(min(P0mM$Time),max(P0mM$Time),length=201)
uf=with(P0mM,unireg(Time,FeuM,g=5,sigma=1))
plot(FeuM~Time,P0mM,ylim=c(0,16000),ylab="Fe2+ uM", xlab="Time", main="0mM P")
lines(z,uf$unimod.func(z))
Мне удалось найти максимальное значение у кривой (14444)
max((uf$unimod.func(z)))
Я хочу определить, где на оси х это происходит. (Должно быть около 30, но я хочу быть точным).
Как ты это делаешь?
Спасибо!
1 ответ
Решение
Похоже на случай optimise
или же optimize
(в зависимости от вашей близости с британским или американским английским):
optimise(uf$unimod.func, maximum=TRUE, interval=range(P0mM$Time))
#$maximum
#[1] 29.27168
#
#$objective
# [,1]
#[1,] 14444.85