
Get the Structure Component for Dimorphism Resampling
getstructure.RdGiven 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.
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
xonly 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.
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