我想在樣條曲線上斜率最大且最小的點處獲得x和y值。我看到了如何在this post上做到這一點,但無法將其複製到我的數據集中。他們可以利用diff()
但我的數據集有特定的x和y向量。我的數據通常是這樣的:從樣條計算斜率值
x<-c(0, 0.13, 0.22, 0.34, 0.44, 0.53, 0.62, 0.72, 0.83, 0.91) y<-c(120, 121, 122, 122, 122, 122, 122, 121, 119, 103) z <-data.frame(x, y) z plot(z) xspline(z$x,z$y, shape=0.5)
但我當然不能用這樣的:
w <-xspline(z$x,z$y, shape=0.5) plot(diff(w))
如果我可以,我會做到這一點:
param1 <- which(abs(diff(w))==max(abs(diff(w)))) param2 <-z[which(abs(diff(w))==max(abs(diff(w)))) ] param1 <- which(abs(diff(w))==min(abs(diff(w)))) param2 <-z[which(abs(diff(w))==min(abs(diff(w)))) ]
我會感激不同的方式來獲得這樣的斜坡陰謀,或從另一個方面來獲得這些參數。也許我在'splines'之路上走得太遠了。
也許'numDeriv(splinefun())'? –
嗯,''numDeriv'不給我結果。儘管splinefun聽起來像商業。我會繼續。 – ptenax
謝謝@Carl Witthoft我設法在下面發表一個答案。 – ptenax