R: Aggregate species data to given taxonomic rank

tax_agg {taxize} | R Documentation

## Aggregate species data to given taxonomic rank

### Description

Aggregate species data to given taxonomic rank

### Usage

    tax_agg(x, rank, db = "ncbi", verbose = FALSE, ...)

    ## S3 method for class 'tax_agg'
    print(x, ...)

### Arguments

`x` | Community data matrix. Taxa in columns, samples in rows.
`rank` | character; Taxonomic rank to aggregate by.
`db` | character; taxonomic API to use, 'ncbi, 'itis' or both, see `tax_name`. Note that each taxonomic data source has their own identifiers, so that if you provide the wrong `db` value for the identifier you could get a result, but it will likely be wrong (not what you were expecting).
`verbose` | (logical) If FALSE (Default) suppress messages
`...` | Other arguments passed to `get_tsn` or `get_uid`.

### Details

`tax_agg` aggregates (sum) taxa to a specific taxonomic level. If a taxon is not found in the database (ITIS or NCBI) or the supplied taxon is on higher taxonomic level this taxon is not aggregated.

### Value

A list of class `tax_agg` with the following items:

`x` | Community data matrix with aggregated data.
`by` | A lookup-table showing which taxa were aggregated.
`n_pre` | Number of taxa before aggregation.
`rank` | Rank at which taxa have been aggregated.

### See Also

`tax_name`

### Examples

    ## Not run:
    if (requireNamespace("vegan", quietly = TRUE)) {
      # use dune dataset
      library("vegan")
      data(dune, package='vegan')
      species <- c("Bellis perennis", "Empetrum nigrum", "Juncus bufonius",
      "Juncus articulatus",
      "Aira praecox", "Eleocharis parvula", "Rumex acetosa", "Vicia lathyroides",
      "Brachythecium rutabulum", "Ranunculus flammula", "Cirsium arvense",
      "Hypochaeris radicata", "Leontodon autumnalis", "Potentilla palustris",
      "Poa pratensis", "Calliergonella cuspidata", "Trifolium pratense",
      "Trifolium repens", "Anthoxanthum odoratum", "Salix repens", "Achillea
      millefolium",
      "Poa trivialis", "Chenopodium album", "Elymus repens", "Sagina procumbens",
      "Plantago lanceolata", "Agrostis stolonifera", "Lolium perenne", "Alopecurus
      geniculatus", "Bromus hordeaceus")
      colnames(dune) <- species

      # aggregate sample to families
      (agg <- tax_agg(dune, rank = 'family', db = 'ncbi'))

      # extract aggregated community data matrix for further usage
      agg$x
      # check which taxa have been aggregated
      agg$by
    }

    # A use case where there are different taxonomic levels in the same dataset
    spnames <- c('Puma','Ursus americanus','Ursidae')
    df <- data.frame(c(1,2,3), c(11,12,13), c(1,4,50))
    names(df) <- spnames
    out <- tax_agg(df, rank = 'family', db='itis')
    out$x

    # You can input a matrix too
    mat <- matrix(c(1,2,3, 11,12,13), nrow = 2, ncol = 3,
     dimnames=list(NULL, c('Puma concolor','Ursus americanus','Ailuropoda melanoleuca')))
    tax_agg(mat, rank = 'family', db='itis')

    ## End(Not run)

[Package taxize version 0.9.0 Index]