# wapply: Compute the Value of a Function Over a Local Region Of An X-Y... In gplots: Various R Programming Tools for Plotting Data

 wapply R Documentation

## 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 documentation built on April 25, 2022, 9:06 a.m.