ApplyByClass {cheddar} | R Documentation

## Apply by class

### Description

Apply functions to a group of values given by a node property.

### Usage

    ApplyByClass(community, property, class, fn, ...)
    SumMByClass(community, class, na.rm=FALSE)
    SumNByClass(community, class, na.rm=FALSE)
    SumBiomassByClass(community, class, na.rm=FALSE)

### Arguments

`community` | an object of class `Community`.
`property` | the property to which `fn` is applied.
`class` | the property over which `fn` is applied. Defaults to 'category' if the community has a node property with that name.
`fn` | a function.
`na.rm` | logical - if `TRUE` then `NA` values are removed.
`...` | Other parameters to `fn`.

### Details

`ApplyByClass` applies `fn` to `property` by class. `property` and `class` should both be names that meet the criteria of the `properties` argument of `NPS`.

`SumMByClass`, `SumNByClass` and `SumBiomassByClass` are convenient wrapper around `ApplyByClass`.

### Value

A vector or list of values, named by unique values of `class`.

### Author(s)

Lawrence Hudson

### See Also

`Community`, `NPS`

### Examples

    data(TL84)

    # Sum body mass by category
    ApplyByClass(TL84, 'M', 'category', sum)

    # A more convenient way to sum body mass by category
    SumMByClass(TL84)

    # Sum body mass by kingdom. The 'Unclassified flagellates' node does not have a
    # kingdom, so we get a value labelled '<unnamed>'.
    SumMByClass(TL84, 'kingdom')

    # Maximum body mass by category
    ApplyByClass(TL84, 'M', 'category', max)

    # A list of min and max M
    ApplyByClass(TL84, 'M', 'category', range)

    # A list of min and max M by kingom
    ApplyByClass(TL84, 'M', 'kingdom', range)

    # The same values as a matrix
    do.call('rbind', ApplyByClass(TL84, 'M', 'kingdom', range))

    # Broadstone Stream has some nodes in every category without M so all returned
    # values are NA.
    data(BroadstoneStream)
    SumMByClass(BroadstoneStream)

    # Get rid of the NA values
    SumMByClass(BroadstoneStream, na.rm=TRUE)

[Package cheddar version 0.1-633 Index]