unipeak | R Documentation |
Remove negative parts of a curve then find the highest positive
part one and, lastly, remove all the remaining smaller ones.
Can be used to treat loadings of principal componenst before
using them as initial conditions for MCR-ALS algorythm (e.g.
als
, doALS
).
unipeak(y)
y |
A vector that represents a curve. |
Modified y
Vilmantas Gegzna
Other curves inspHelper:
GaussAmp()
Other component analysis / factorisation related functions in spHelper:
getScores()
,
infoDim()
,
plot_spDiff()
,
qplot_infoDim()
,
qplot_kAmp()
,
qplot_kSp()
,
qplot_spc()
,
reconstructSp()
,
sortLoadings()
,
whichOutlier()
# Example 1 ------------------------------------------------------------------------
x <- seq(-10,20,.1)
y0 <- sin(x)/3 + GaussAmp(x,c = 7, A = 1.5) -.1
y0NEW <- unipeak(y0)
# Plot the results
par(mfrow = c(1,1))
plot( x, y0, type = "l", lty = 3,
main = "'unipeak' keeps positive part \n of highest peak only" );
lines(x, y0NEW, type = "l", lty = 1, lwd = 3);
legend("topleft", legend = c("Before","After"), lty = c(3,1))
# Example 2 ------------------------------------------------------------------------
x <- seq(-10,20,.1)
y1 <- (sin(x/4) + GaussAmp(x))
y2 <- (2*sin(x) + sin(x/5) + GaussAmp(x, c = 6))
y <- base::rbind(y1,y2)
yNEW <- apply(y,1,unipeak)
op <- par(mfrow = c(3,1))
# plot 1
matplot(x, t(y), type = "l", lty = 3, main = "A - Initial curves");
abline(h = 0)
# plot 2
matplot(x,yNEW, type = "l", lty = 1,lwd = 3,
main = "B - Only the highest positive\n peaks per curve");
abline(h = 0)
# plot 3: both plots together
matplot(x, t(y), type = "l", lty = 3, main = "A and B together");
matlines(x,yNEW, type = "l", lty = 1,lwd = 3);
abline(h = 0)
par(op)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.