Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

wapply

Compute the Value of a Function Over a Local Region Of An X-Y Plot


Description

This function applies the specified function to the sets of y values that are defined by overlapping "windows" in the x-dimension. For example, setting fun=mean returns local means, while setting fun=function(x) sqrt(var(x)) returns local estimates of the standard deviation.

Usage

wapply(x, y, fun=mean, method="range", width, n=50, drop.na=TRUE,
       pts, ...)

Arguments

x

vector of x values for (x,y) pairs

y

vector of y values for (x,y) pairs

fun

function to be applied

method

method of defining an x-neighborhood. One of "width","nobs","range", or "fraction". See details.

width

width of an x-neighborhood. See details.

n

Number of equally spaced points at which to compute local estimates. See details.

drop.na

should points which result in missing values NA be omitted from the return value. Defaults to true.

pts

x locations at which to compute the local mean when using the "width" or "range" methods. Ignored otherwise.

...

arguments to be passed to fun

Details

Two basic techniques are available for determining what points fall within the same x-neighborhood. The first technique uses a window with a fixed width in the x-dimension and is is selected by setting method="width" or method="range". For method="width" the width argument is an absolute distance in the x-dimension. For method="range", the width is expressed as a fraction of the x-range. In both cases, pts specifies the points at which evaluation of fun occurs. When pts is omitted, n x values equally spaced along the x range are used.

The second technique uses windows containing k neighboring points. The (x,y) pairs are sorted by the x-values and the nearest k/2 points with higher x values and the k/2 nearest points with lower x values are included in the window. When method="nobs", k equals width (actually 2*floor(width/2) ). When method="fraction", width specifies what fraction of the total number of points should be included. The actual number of points included in each window will be floor(n*frac/2)*2. Regardless of the value of pts, the function fun will be evaluated at all x locations.

Value

Returns a list with components

x

x location'

y

Result of applying fun to the window about each x location

Author(s)

Gregory R. Warnes greg@warnes.net

Examples

#show local mean and inner 2-sd interval to help diagnose changing mean
#or variance structure
x <- 1:1000
y <- rnorm(1000, mean=1, sd=1 + x/1000 )

plot(x,y)
lines(wapply(x,y,mean),col="red")

CL <- function(x,sd) mean(x)+sd*sqrt(var(x))

lines(wapply(x,y,CL,sd= 1),col="blue") 
lines(wapply(x,y,CL,sd=-1),col="blue") 
lines(wapply(x,y,CL,sd= 2),col="green")
lines(wapply(x,y,CL,sd=-2),col="green")

#show local mean and inner 2-sd interval to help diagnose changing mean
#or variance structure
x <- 1:1000
y <- rnorm(1000, mean=x/1000, sd=1)

plot(x,y)
lines(wapply(x,y,mean),col="red")

CL <- function(x,sd) mean(x)+sd*sqrt(var(x))

lines(wapply(x,y,CL,sd= 1,method="fraction",width=1/20),col="blue")
lines(wapply(x,y,CL,sd=-1,method="fraction",width=1/20),col="blue")
lines(wapply(x,y,CL,sd= 2,method="nobs",width=250),col="green")
lines(wapply(x,y,CL,sd=-2,method="nobs",width=250),col="green")

gplots

Various R Programming Tools for Plotting Data

v3.1.1
GPL-2
Authors
Gregory R. Warnes [aut], Ben Bolker [aut], Lodewijk Bonebakker [aut], Robert Gentleman [aut], Wolfgang Huber [aut], Andy Liaw [aut], Thomas Lumley [aut], Martin Maechler [aut], Arni Magnusson [aut], Steffen Moeller [aut], Marc Schwartz [aut], Bill Venables [aut], Tal Galili [ctb, cre]
Initial release
2020-11-28

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.