Calculate the midpoints of a sequence of numbers. This is e.g. useful for labelling stacked barplots.
Midx(x, incl.zero = FALSE, cumulate = FALSE)
numeric vector with the calculated midpoins
the numeric vector
should zero be appended to x before proceeding? If TRUE
the first value will be one half of the first value of x. Default is FALSE.
should the result be calculated as cumulative sum? Default is FALSE.
Andri Signorell <andri@signorell.net>
MoveAvg
x <- c(1, 3, 6, 7)
Midx(x)
Midx(x, incl.zero = TRUE)
Midx(x, incl.zero = TRUE, cumulate = TRUE)
# an alternative to
head(MoveAvg(c(0, x), order = 2, align = "l"), n = -1)
tab <- matrix(c(401,216,221,254,259,169), nrow=2, byrow=TRUE)
b <- barplot(tab, beside = FALSE, horiz=TRUE)
x <- t(apply(tab, 2, Midx, incl.zero=TRUE, cumulate=TRUE))
text(tab, x=x, y=b, col="red")
Run the code above in your browser using DataLab