Skip to contents

Given a list of metric datasets, calculates the shared data structure that allows for all samples to be included in a common resampling analysis. This generates the struc component to be included in various functions in the dimorph package.

Usage

getstructure(x, forcematrix = F)

Arguments

x

A list of one or more dataframes corresponding to samples of metric data where rows are individual specimens and columns are variables. Missing data are allowable and should be indicated with NAs.

forcematrix

A logical flag specifying whether a dataframe (instead of a vector of specimen counts) should be returned when x only contains a single dataset and that dataset has missing data. See "Value" below for more details.

Value

If x is a list of one or more datasets with no missing data, a dataframe filled with 1s with a number of rows equal to the minimum number of specimens across all datasets in x, and columns corresponding to each variable shared by all datasets in x. If x contains one or more datasets with no missing data and only one dataset with missing data, getstructure returns a dataframe equal to the dataset with missing data where all measurements are replaced with 1, and only variables shared across all datasets in x are present. If x contains one or more datasets with no missing data and two or more datasets with missing data, getstructure returns a vector of integers in which each entry corresponds to a variable shared by all datasets in x, and the value of each entry is the minimum number of specimens with data for that variable across all datasets in x. If x contains only a single dataset and that dataset has missing data, getstructure returns an integer vector as described above unless forcematrix is set to TRUE, in which case a dataframe is returned which is equal to the dataset in x where all measurements are replaced with 1. Note that an error will be generated if one or more complete datasets are present in x and any of the complete datasets have fewer individuals than any datasets with missing data because the complete data cannot be sampled down to the size of the dataset(s) with missing data.

See also

Examples

SSDvars <- c("FHSI", "TPML", "TPMAP", "TPLAP", "HHMaj",
             "HHMin", "RHMaj", "RHMin", "RDAP", "RDML")
getstructure(list(apelimbart[apelimbart$Species=="Gorilla gorilla", SSDvars],
                  apelimbart[apelimbart$Species=="Homo sapiens", SSDvars]))
#>                FHSI TPML TPMAP TPLAP HHMaj HHMin RHMaj RHMin RDAP RDML
#> AIMZ 13488        1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1423     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1710     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1725     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1743     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1756     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1765     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1806     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1846     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1849     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1851     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1852     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1854     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1856     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1897     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1997     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 2069     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 3393     1    1     1     1     1     1     1     1    1    1
#> MNHN 1856-67      1    1     1     1     1     1     1     1    1    1
#> PCM Gg-C1-042     1    1     1     1     1     1     1     1    1    1
#> PCM Gg-C1-096     1    1     1     1     1     1     1     1    1    1
#> PCM Gg-C1-098     1    1     1     1     1     1     1     1    1    1
#> PCM Gg-C1-149     1    1     1     1     1     1     1     1    1    1
#> PCM Gg-C1-150     1    1     1     1     1     1     1     1    1    1
#> PCM Gg-FC146      1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M035       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M058       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M095       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M096       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M136       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M138       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M150       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M174       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M329       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M470       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M696       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M716       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M786       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M798       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M840       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M856       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M877       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M902       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M932       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-Z6-33      1    1     1     1     1     1     1     1    1    1
#> RBINS 33238       1    1     1     1     1     1     1     1    1    1
#> ZSM 1954/0201     1    1     1     1     1     1     1     1    1    1
#> AIMZ 6841         1    1     1     1     1     1     1     1    1    1
#> AIMZ 6884         1    1     1     1     1     1     1     1    1    1
#> AIMZ PAL-11       1    1     1     1     1     1     1     1    1    1
#> AIMZ PAL-12       1    1     1     1     1     1     1     1    1    1
#> AIMZ PAL-8        1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1407     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1712     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1729     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1731     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1732     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1746     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1796     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1797     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1859     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1954     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1991     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 1994     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 2028     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 2745     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 2767     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 3391     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 3400     1    1     1     1     1     1     1     1    1    1
#> CMNH HTB 3404     1    1     1     1     1     1     1     1    1    1
#> MNHN 1866-92      1    1     1     1     1     1     1     1    1    1
#> MNHN 1899-16      1    1     1     1     1     1     1     1    1    1
#> MNHN 1912-475     1    1     1     1     1     1     1     1    1    1
#> MNHN 1914-99      1    1     1     1     1     1     1     1    1    1
#> MNHN 1931-657     1    1     1     1     1     1     1     1    1    1
#> MNHN 1982-56      1    1     1     1     1     1     1     1    1    1
#> MNHN 2007-1493    1    1     1     1     1     1     1     1    1    1
#> MNHN A12747       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-C1-099     1    1     1     1     1     1     1     1    1    1
#> PCM Gg-C1-105     1    1     1     1     1     1     1     1    1    1
#> PCM Gg-C1-106     1    1     1     1     1     1     1     1    1    1
#> PCM Gg-C1-229     1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M183       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M264       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M372       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M687       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-M962       1    1     1     1     1     1     1     1    1    1
#> PCM Gg-Z1-30      1    1     1     1     1     1     1     1    1    1
#> PCM Gg-Z2-65      1    1     1     1     1     1     1     1    1    1
#> PCM Gg-Z6-32      1    1     1     1     1     1     1     1    1    1
#> RBINS 871         1    1     1     1     1     1     1     1    1    1
#> ZSM 1908/0034     1    1     1     1     1     1     1     1    1    1
#> ZSM 1911/2397     1    1     1     1     1     1     1     1    1    1
#> ZSM 1962/0333     1    1     1     1     1     1     1     1    1    1
getstructure(list(apelimbart[apelimbart$Species=="Gorilla gorilla", SSDvars],
                  apelimbart[apelimbart$Species=="Homo sapiens", SSDvars],
                  fauxil[fauxil$Species=="Fauxil sp. 1", SSDvars]))
#>               FHSI TPML TPMAP TPLAP HHMaj HHMin RHMaj RHMin RDAP RDML
#> PCM Gg-M877     NA   NA     1    NA    NA    NA    NA     1   NA   NA
#> PCM Gg-Z6-33    NA    1    NA    NA     1    NA    NA    NA   NA    1
#> CMNH HTB 1997   NA   NA    NA    NA     1     1    NA    NA   NA   NA
#> CMNH HTB 1710    1    1     1    NA    NA     1    NA     1    1   NA
#> CMNH HTB 1846   NA   NA    NA     1     1     1    NA    NA   NA   NA
#> CMNH HTB 1851   NA   NA    NA     1    NA    NA    NA    NA    1   NA
#> ZSM 1954/0201   NA   NA    NA    NA    NA    NA     1     1   NA   NA
#> MNHN 1982-56    NA   NA    NA    NA    NA    NA    NA     1   NA   NA
#> CMNH HTB 1729    1   NA    NA    NA    NA    NA    NA    NA    1   NA
#> PCM Gg-C1-105   NA   NA    NA    NA    NA     1    NA    NA   NA    1
#> CMNH HTB 1994    1   NA    NA     1     1    NA     1    NA   NA   NA
#> CMNH HTB 1732   NA   NA    NA     1    NA     1    NA    NA   NA   NA
#> CMNH HTB 1954   NA   NA    NA    NA    NA     1    NA    NA   NA   NA
#> CMNH HTB 1797   NA   NA    NA    NA     1    NA    NA    NA   NA   NA
#> MNHN 1931-657    1    1    NA    NA    NA    NA    NA    NA   NA   NA
#> CMNH HTB 3400   NA    1    NA    NA    NA    NA    NA    NA   NA   NA
getstructure(list(apelimbart[apelimbart$Species=="Gorilla gorilla", SSDvars],
                  apelimbart[apelimbart$Species=="Homo sapiens", SSDvars],
                  fauxil[fauxil$Species=="Fauxil sp. 1", SSDvars],
                  fauxil[fauxil$Species=="Fauxil sp. 2", SSDvars]))
#>  FHSI  TPML TPMAP TPLAP HHMaj HHMin RHMaj  RDAP  RDML 
#>     4     2     2     4     5     2     2     3     2 
getstructure(list(fauxil[fauxil$Species=="Fauxil sp. 1", SSDvars]))
#>  FHSI  TPML TPMAP TPLAP HHMaj HHMin RHMaj RHMin  RDAP  RDML 
#>     4     4     2     4     5     6     2     4     3     2 
getstructure(list(fauxil[fauxil$Species=="Fauxil sp. 2", SSDvars]))
#>  FHSI  TPML TPMAP TPLAP HHMaj HHMin RHMaj  RDAP  RDML 
#>     8     2     5     4     5     2     3     3     5 
getstructure(list(fauxil[fauxil$Species=="Fauxil sp. 2", SSDvars]), forcematrix=TRUE)
#>               FHSI TPML TPMAP TPLAP HHMaj HHMin RHMaj RDAP RDML
#> CMNH HTH 1709    1   NA    NA    NA    NA    NA    NA    1   NA
#> CMNH HTH 1779   NA   NA    NA    NA     1    NA    NA   NA    1
#> CMNH HTH 0221   NA   NA    NA     1    NA    NA    NA   NA   NA
#> CMNH HTH 1270    1   NA     1    NA     1    NA    NA   NA   NA
#> CMNH HTH 2056    1   NA     1    NA    NA    NA    NA   NA   NA
#> CMNH HTH 2761   NA    1    NA    NA     1    NA    NA    1   NA
#> CMNH HTH 0727   NA   NA     1    NA    NA    NA    NA   NA   NA
#> CMNH HTH 1755    1   NA    NA    NA    NA    NA    NA   NA    1
#> CMNH HTH 2428    1   NA    NA    NA     1    NA     1    1   NA
#> CMNH HTH 1685   NA   NA     1    NA     1    NA     1   NA   NA
#> CMNH HTH 0383   NA   NA    NA    NA    NA    NA     1   NA    1
#> CMNH HTH 0280    1   NA     1    NA    NA    NA    NA   NA   NA
#> CMNH HTH 0922    1   NA    NA    NA    NA    NA    NA   NA   NA
#> CMNH HTH 0878   NA   NA    NA     1    NA    NA    NA   NA   NA
#> CMNH HTH 1398   NA   NA    NA     1    NA     1    NA   NA   NA
#> CMNH HTH 2584   NA   NA    NA    NA    NA    NA    NA   NA    1
#> CMNH HTH 1389    1   NA    NA    NA    NA    NA    NA   NA   NA
#> CMNH HTH 0720   NA    1    NA    NA    NA    NA    NA   NA   NA
#> CMNH HTH 0712   NA   NA    NA     1    NA     1    NA   NA    1