# eval.fv

##### Evaluate Expression Involving Functions

Evaluates any expression involving one or more function value (fv) objects, and returns another object of the same kind.

- Keywords
- manip, spatial, programming

##### Usage

`eval.fv(expr, envir, dotonly=TRUE)`

##### Arguments

- expr
- An expression.
- envir
- Optional. The environment in which to evaluate the expression.
- dotonly
- Logical. See Details.

##### Details

This is a wrapper to make it easier to perform pointwise calculations with the summary functions used in spatial statistics.

An object of class `"fv"`

is essentially a data frame
containing several different statistical estimates of the same
function. Such objects are returned by `Kest`

and its
relatives.

For example, suppose `X`

is an object of class `"fv"`

containing several different estimates of the Ripley's K function $K(r)$,
evaluated at a sequence of values of $r$.
Then `eval.fv(X+3)`

effectively adds 3 to
each function estimate in `X`

, and returns
the resulting object.

Suppose `X`

and `Y`

are two objects of class `"fv"`

which are compatible (in particular they have the same vector
of $r$ values). Then
`eval.im(X + Y)`

will add the corresponding function values in
`X`

and `Y`

, and return the resulting function.

In general, `expr`

can be any expression involving
(a) the *names* of objects of class `"fv"`

, (b) scalar
constants, and (c) functions which are vectorised.
See the Examples.

First `eval.fv`

determines which of the *variable names*
in the expression `expr`

refer to objects of class `"fv"`

.
Each such name is replaced by a vector containing the function values.
The expression is then evaluated. The result should be a vector;
it is taken as the new vector of function values.

The expression `expr`

must be vectorised.
There must be at least one object of class `"fv"`

in the expression.
All such objects must be compatible.

If `dotonly=TRUE`

(the default), the expression will be
evaluated only for those columns of an `"fv"`

object
that contain values of the function itself (rather than
values of the derivative of the function, the hazard rate, etc).
If `dotonly=FALSE`

, the expression will be evaluated for all columns.

For example the result of `Fest`

includes several columns
containing estimates of the empty space function $F(r)$,
but also includes an estimate of the
*hazard* $h(r)$ of $F(r)$. Transformations that are valid
for $F$ may not be valid for $h$. Accordingly, $h$ would
normally be omitted from the calculation.
The columns of an object `x`

that represent the function itself
are identified by its `fvnames(x, ".")`

.
They are the columns normally plotted by `plot.fv`

and identified by the symbol `"."`

in plot formulas
in `plot.fv`

.

##### Value

- Another object of class
`"fv"`

.

##### See Also

##### Examples

```
# manipulating the K function
X <- rpoispp(42)
Ks <- Kest(X)
eval.fv(Ks + 3)
Ls <- eval.fv(sqrt(Ks/pi))
# manipulating two K functions
Y <- rpoispp(20)
Kr <- Kest(Y)
Kdif <- eval.fv(Ks - Kr)
Z <- eval.fv(sqrt(Ks/pi) - sqrt(Kr/pi))
```

*Documentation reproduced from package spatstat, version 1.28-1, License: GPL (>= 2)*