FlowerMate computes the original reciprocity indexes of Sánchez et al. (2008, 2013) and Armbruster et al (2017), and their multidimensional variants, developed by Simón-Porcar et al. (2023). These indexes are applicable to common heterostylous populations and to any other type of stylar dimorphic and trimorphic populations, such as stylar-dimorphic, three-dimensional heterostylous and enantiostylous plants. FlowerMate includes a main function, inaccuracy, that computes either the one-, two- or three-dimensional versions of the Reciprocity and Inaccuracy Indexes, either for dimorphic or trimorphic populations, depending on the data input and options chosen. The input format includes one row per measured sex organ and the eight following columns: population code, floral morph, Individual ID number, Sex organ ID number, Sex organ type (stigma or anther), and x, y, z coordinates. The user can select the coordinates to compute, hence obtaining either uni-, bi- or three-dimensional indexes. In stylar polymorphic species with same sex organs at stricklingly different locations (e.g. enantiostylous flowers with both left- and right-facing stamens), the user can select different data subsets for computation. inaccuracy computes the Reciprocity and Inaccuracy Indexes also in presence of missing data, warning that the values may not be comparable across populations (e.g. if the distribution of missing data is strongly biased across morphs or dimensions). There are short and extended output options for inaccuracy, providing either the Reciprocity and Inaccuracy values alone or accompanied of all the intermediate components calculated for each population. FlowerMate also includes functions to simulate style-polymorphic populations with the average coordinates and variance specified for each sex organ level and morph.
The objective of this vignete is to illustrate the usage of the different functions and arguments of the FlowerMate package. The first step is to install and load the package:
These above first two lines are not working yet (not in CRAN), we should use instead: source(“FlowerMate_1.0.R”)
As mentioned above, the input dataset must contain at least 8
columns, being three of them for coordinates x, y and z. We can use the
function SimDimor()
to produce example dimorphic dataset
and visualize the content of the input matrices.
This is a matrix with only 2 individuals from a single population, with 3D measurements for one stamen and one anther each (using all the defaults parameters, large and short morphs show around 20 and 8 cm length in all dimensions):
## this is just you to get this same random example in your computer
set.seed(1234)
SimDimor(NIDL = 2, NIDS = 2)
#> pop_code morph ID_indiv ID_sexorg sexorg x y z
#> 1 test1 L 1 1 ST 19.396467 19.717774 19.744495
#> 2 test1 L 1 2 AN 20.138715 19.554981 19.544402
#> 3 test1 L 2 3 ST 8.542221 7.761404 7.581414
#> 4 test1 L 2 4 AN 6.827151 7.500807 9.207918
#> 5 test1 S 3 5 ST 8.214562 7.611873 8.067044
#> 6 test1 S 3 6 AN 8.253028 8.032229 7.754657
#> 7 test1 S 4 7 ST 19.712630 20.479747 19.779726
#> 8 test1 S 4 8 AN 19.726684 19.944857 20.229795
We can also produce data for 2D and 1D setting mean and sd values to 0 as follow:
## this is just you to get this same random example in your computer
set.seed(1234)
SimDimor(NIDL = 2, NIDS = 2,
LSTmeanZ = 0, LSTsdZ = 0, LANmeanZ = 0, LANsdZ = 0,
SSTmeanZ = 0, SSTsdZ = 0, SANmeanZ = 0, SANsdZ = 0)
#> pop_code morph ID_indiv ID_sexorg sexorg x y z
#> 1 test1 L 1 1 ST 19.396467 19.717774 0
#> 2 test1 L 1 2 AN 20.138715 19.554981 0
#> 3 test1 L 2 3 ST 8.542221 7.761404 0
#> 4 test1 L 2 4 AN 6.827151 7.500807 0
#> 5 test1 S 3 5 ST 8.214562 7.611873 0
#> 6 test1 S 3 6 AN 8.253028 8.032229 0
#> 7 test1 S 4 7 ST 19.712630 20.479747 0
#> 8 test1 S 4 8 AN 19.726684 19.944857 0
## this is just you to get this same random example in your computer
set.seed(1234)
SimDimor(NIDL = 2, NIDS = 2,LSTmeanX = 0, LSTsdX = 0,
LANmeanX = 0, LANsdX = 0, SSTmeanX = 0, SSTsdX = 0, SANmeanX = 0, SANsdX = 0,
LSTmeanZ = 0, LSTsdZ = 0, LANmeanZ = 0, LANsdZ = 0,
SSTmeanZ = 0, SSTsdZ = 0, SANmeanZ = 0, SANsdZ = 0)
#> pop_code morph ID_indiv ID_sexorg sexorg x y z
#> 1 test1 L 1 1 ST 0 19.396467 0
#> 2 test1 L 1 2 AN 0 20.138715 0
#> 3 test1 L 2 3 ST 0 8.542221 0
#> 4 test1 L 2 4 AN 0 6.827151 0
#> 5 test1 S 3 5 ST 0 8.214562 0
#> 6 test1 S 3 6 AN 0 8.253028 0
#> 7 test1 S 4 7 ST 0 19.712630 0
#> 8 test1 S 4 8 AN 0 19.726684 0
Note that dimensions with no data must be represented in the input dataset with 0
The code above generates tiny inputs to visualize the content, but we can produce larger dataset to illustrate the analyses of real dataset. In addition, the above examples use most of the default arguments (mainly mean and standard deviation values). The lines below will produce four more realistic dataset for: 1) one enantiostylous population; 2) one distylous population; 3) one distylous population with multiple sexual organs; and 4) one tristylous population. The first example contains 3D data whereas the three remaining contains 1D data:
set.seed(1111)
enantiostylous.dat<- SimDimor (NIDL=20, NIDS=20,Nst=1,Nan=3,Norg.st=1,Norg.an=1,
LSTmeanX=-10, LSTsdX=2, LANmeanX=c(9,7,-7),LANsdX=c(2,2,2),
SSTmeanX=9, SSTsdX=2, SANmeanX=c(-9,-6,6), SANsdX=c(2,2,2),
LSTmeanY=9, LSTsdY=2, LANmeanY=c(7,3,3) ,LANsdY=c(2,2,2),
SSTmeanY=8, SSTsdY=2, SANmeanY=c(6,2,3), SANsdY=c(2,2,2),
LSTmeanZ=15, LSTsdZ=2, LANmeanZ=c(16,15,15) ,LANsdZ=c(2,2,2),
SSTmeanZ=16, SSTsdZ=2, SANmeanZ=c(15,15,15), SANsdZ=c(2,2,2),
pop_code="enantiostylous")
set.seed(2222)
distylous.dat <- SimDimor (NIDL=20, NIDS=20,Nst=1,Nan=1,Norg.st=1,Norg.an=1,
LSTmeanX=0, LSTsdX=0, LANmeanX=0,LANsdX=0,
SSTmeanX=0, SSTsdX=0, SANmeanX=0, SANsdX=0,
LSTmeanY=8, LSTsdY=1, LANmeanY=4 ,LANsdY=1,
SSTmeanY=5, SSTsdY=1, SANmeanY=9, SANsdY=1,
LSTmeanZ=0, LSTsdZ=0, LANmeanZ=0 ,LANsdZ=0,
SSTmeanZ=0, SSTsdZ=0, SANmeanZ=0, SANsdZ=0,
pop_code="distylous")
set.seed(3333)
styledimor.2antherwhorl.dat <- SimDimor (NIDL=20, NIDS=20,Nst=1,Nan=2,Norg.st=1,Norg.an=1,
LSTmeanX=0, LSTsdX=0, LANmeanX=c(0,0),LANsdX=c(0,0),
SSTmeanX=0, SSTsdX=0, SANmeanX=c(0,0), SANsdX=c(0,0),
LSTmeanY=8, LSTsdY=1, LANmeanY=c(6,5) ,LANsdY=c(1,1),
SSTmeanY=4, SSTsdY=1, SANmeanY=c(6,5), SANsdY=c(1,1),
LSTmeanZ=0, LSTsdZ=0, LANmeanZ=c(0,0) ,LANsdZ=c(0,0),
SSTmeanZ=0, SSTsdZ=0, SANmeanZ=c(0,0), SANsdZ=c(0,0),
pop_code="styledimorphic")
set.seed(4444)
tristylous.dat <-SimTrimor(NIDL=20,NIDM=20,NIDS=20,
LUPmeanX=0, LUPsdX=0, LBWmeanX=0 ,LBWsdX=0, LLWmeanX=0, LLWsdX=0,
MUPmeanX=0, MUPsdX=0, MBWmeanX=0 ,MBWsdX=0, MLWmeanX=0, MLWsdX=0,
SUPmeanX=0, SUPsdX=0, SBWmeanX=0 ,SBWsdX=0, SLWmeanX=0, SLWsdX=0,
LUPmeanY=12, LUPsdY=2, LBWmeanY=8 ,LBWsdY=2, LLWmeanY=4, LLWsdY=2,
MUPmeanY=12, MUPsdY=2, MBWmeanY=8 ,MBWsdY=2, MLWmeanY=4, MLWsdY=2,
SUPmeanY=12, SUPsdY=2, SBWmeanY=8 ,SBWsdY=2, SLWmeanY=4, SLWsdY=2,
LUPmeanZ=0, LUPsdZ=0, LBWmeanZ=0 ,LBWsdZ=0, LLWmeanZ=0, LLWsdZ=0,
MUPmeanZ=0, MUPsdZ=0, MBWmeanZ=0 ,MBWsdZ=0, MLWmeanZ=0, MLWsdZ=0,
SUPmeanZ=0, SUPsdZ=0, SBWmeanZ=0 ,SBWsdZ=0, SLWmeanZ=0, SLWsdZ=0,
pop_code="tristylous")
inaccuracy(enantiostylous.dat)
#> nL nS Inac.u Inac.d Inac.perc.u Inac.perc.d TotalInac
#> enantiostylous 20 20 181.864 168.453 51.914 48.086 350.317
#> Mean2Stand.TotalInac r R
#> enantiostylous 1.062 0.881 -2.009
inaccuracy(distylous.dat)
#> nL nS Inac.u Inac.d Inac.perc.u Inac.perc.d TotalInac
#> distylous 20 20 12.807 12.261 51.089 48.911 25.068
#> Mean2Stand.TotalInac r R
#> distylous 0.597 0.609 -0.915
inaccuracy(styledimor.2antherwhorl.dat)
#> nL nS Inac.u Inac.d Inac.perc.u Inac.perc.d TotalInac
#> styledimorphic 20 20 7.565 5.617 57.387 42.613 13.182
#> Mean2Stand.TotalInac r R
#> styledimorphic 0.395 0.49 -0.275
inaccuracy(tristylous.dat)
#> nL nS nM Inac.u Inac.d Inac.b, Inac.perc.u Inac.perc.d Inac.perc.b
#> tristylous 20 20 20 28.729 29.044 16.57 38.644 39.068 22.289
#> TotalInac Mean2Stand.TotalInac r R
#> tristylous 74.343 1.091 0.382 0.207
Lets take a look on the arguments. First, we can analyse every dimension (or any subset of dimensions) separately using useonly.dim. Thus, we can analyse any subset of dimensions in the enantiostylous dataset:
inaccuracy(enantiostylous.dat)
#> nL nS Inac.u Inac.d Inac.perc.u Inac.perc.d TotalInac
#> enantiostylous 20 20 181.864 168.453 51.914 48.086 350.317
#> Mean2Stand.TotalInac r R
#> enantiostylous 1.062 0.881 -2.009
inaccuracy(enantiostylous.dat, useonly.dim = c("x"))
#> nL nS Inac.u Inac.d Inac.perc.u Inac.perc.d TotalInac
#> enantiostylous 20 20 148.085 141.799 51.084 48.916 289.884
#> Mean2Stand.TotalInac r R
#> enantiostylous 4.809 1.704 -14.22
inaccuracy(enantiostylous.dat, useonly.dim = c("y"))
#> nL nS Inac.u Inac.d Inac.perc.u Inac.perc.d TotalInac
#> enantiostylous 20 20 27.657 19.179 59.05 40.95 46.836
#> Mean2Stand.TotalInac r R
#> enantiostylous 1.808 1.076 -4.864
inaccuracy(enantiostylous.dat, verbose=TRUE)
#> $Result
#> nL nS Inac.u Inac.d Inac.perc.u Inac.perc.d TotalInac
#> enantiostylous 20 20 181.864 168.453 51.914 48.086 350.317
#> Mean2Stand.TotalInac r R
#> enantiostylous 1.062 0.881 -2.009
#>
#> $Armbruster
#> [,1]
#> Mean.ST.u.x -0.1211759
#> Mean.ST.u.y 5.6688235
#> Mean.ST.u.z 15.3633263
#> Mean.AN.u.x 0.7657808
#> Mean.AN.u.y 4.4920783
#> Mean.AN.u.z 14.9364003
#> Mean.ST.d.x 0.5184849
#> Mean.ST.d.y 4.2489372
#> Mean.ST.d.z 15.5668827
#> Mean.AN.d.x 0.1860686
#> Mean.AN.d.y 5.5190979
#> Mean.AN.d.z 15.1227286
#> Mean.ALL.x 0.4066072
#> Mean.ALL.y 4.9939111
#> Mean.ALL.z 15.1384495
#> Inac.u.xyz 181.8644592
#> Inac.d.xyz 168.4526335
#> Inac.perc.u 51.9142408
#> Inac.perc.d 48.0857592
#> TotalInac 350.3170927
#> Mean2Stand.TotalInac 1.0619392
#>
#> $Sanchez
#> rL sdrL rS sdrS r sdr R
#> 0.6370448 0.3423479 0.6083007 0.3408080 0.8808268 0.3415779 -2.0087101
inaccuracy(distylous.dat, verbose=TRUE)
#> $Result
#> nL nS Inac.u Inac.d Inac.perc.u Inac.perc.d TotalInac
#> distylous 20 20 12.807 12.261 51.089 48.911 25.068
#> Mean2Stand.TotalInac r R
#> distylous 0.597 0.609 -0.915
#>
#> $Armbruster
#> [,1]
#> Mean.ST.u.x 0.0000000
#> Mean.ST.u.y 6.1709550
#> Mean.ST.u.z 0.0000000
#> Mean.AN.u.x 0.0000000
#> Mean.AN.u.y 6.6945614
#> Mean.AN.u.z 0.0000000
#> Mean.ST.d.x 0.0000000
#> Mean.ST.d.y 6.8632219
#> Mean.ST.d.z 0.0000000
#> Mean.AN.d.x 0.0000000
#> Mean.AN.d.y 6.1820935
#> Mean.AN.d.z 0.0000000
#> Mean.ALL.x 0.0000000
#> Mean.ALL.y 6.4777080
#> Mean.ALL.z 0.0000000
#> Inac.u.xyz 12.8071801
#> Inac.d.xyz 12.2612261
#> Inac.perc.u 51.0889285
#> Inac.perc.d 48.9110715
#> TotalInac 25.0684062
#> Mean2Stand.TotalInac 0.5974258
#>
#> $Sanchez
#> rL sdrL rS sdrS r sdr R
#> 0.4372564 0.3147873 0.4234320 0.3144124 0.6086771 0.3145998 -0.9148973
inaccuracy(styledimor.2antherwhorl.dat, verbose=TRUE)
#> $Result
#> nL nS Inac.u Inac.d Inac.perc.u Inac.perc.d TotalInac
#> styledimorphic 20 20 7.565 5.617 57.387 42.613 13.182
#> Mean2Stand.TotalInac r R
#> styledimorphic 0.395 0.49 -0.275
#>
#> $Armbruster
#> [,1]
#> Mean.ST.u.x 0.0000000
#> Mean.ST.u.y 6.6296508
#> Mean.ST.u.z 0.0000000
#> Mean.AN.u.x 0.0000000
#> Mean.AN.u.y 4.9335541
#> Mean.AN.u.z 0.0000000
#> Mean.ST.d.x 0.0000000
#> Mean.ST.d.y 5.3712871
#> Mean.ST.d.z 0.0000000
#> Mean.AN.d.x 0.0000000
#> Mean.AN.d.y 6.3920654
#> Mean.AN.d.z 0.0000000
#> Mean.ALL.x 0.0000000
#> Mean.ALL.y 5.7753628
#> Mean.ALL.z 0.0000000
#> Inac.u.xyz 7.5645392
#> Inac.d.xyz 5.6171002
#> Inac.perc.u 57.3869379
#> Inac.perc.d 42.6130621
#> TotalInac 13.1816394
#> Mean2Stand.TotalInac 0.3951945
#>
#> $Sanchez
#> rL sdrL rS sdrS r sdr R
#> 0.3665220 0.2870184 0.3257386 0.2331246 0.4903509 0.2600715 -0.2752630
inaccuracy(tristylous.dat, verbose=TRUE)
#> $Result
#> nL nS nM Inac.u Inac.d Inac.b, Inac.perc.u Inac.perc.d Inac.perc.b
#> tristylous 20 20 20 28.729 29.044 16.57 38.644 39.068 22.289
#> TotalInac Mean2Stand.TotalInac r R
#> tristylous 74.343 1.091 0.382 0.207
#>
#> $Armbruster
#> [,1]
#> Mean.ST.u.x 0.000000
#> Mean.ST.u.y 12.082536
#> Mean.ST.u.z 0.000000
#> Mean.AN.u.x 0.000000
#> Mean.AN.u.y 9.367871
#> Mean.AN.u.z 0.000000
#> Mean.ST.d.x 0.000000
#> Mean.ST.d.y 4.266537
#> Mean.ST.d.z 0.000000
#> Mean.AN.d.x 0.000000
#> Mean.AN.d.y 7.366806
#> Mean.AN.d.z 0.000000
#> Mean.ALL.x 0.000000
#> Mean.ALL.y 8.234141
#> Mean.ALL.z 0.000000
#> Inac.u.xyz 28.728893
#> Inac.d.xyz 29.043963
#> Inac.perc.u.xyz 38.643787
#> Inac.perc.d.xyz 39.067595
#> TotalInac 74.342851
#> Mean2Stand.TotalInac 1.091441
#>
#> $Sanchez
#> rUP sdrUP rLOW sdrLOW rBW sdrBW r sdr
#> 0.3200462 0.2372732 0.2355012 0.1865024 0.2482535 0.1999195 0.3815272 0.2078984
#> R
#> 0.2068111
inaccuracy(enantiostylous.dat, intramorph=TRUE)
#> nL nS Inac.L Inac.S Inac.perc.L Inac.perc.S TotalInacINTRA
#> enantiostylous 20 20 191.917 154.818 55.35 44.65 346.735
#> Mean2Stand.TotalInacINTRA r R
#> enantiostylous 1.051 0.881 -2.009
inaccuracy(distylous.dat, intramorph=TRUE)
#> nL nS Inac.L Inac.S Inac.perc.L Inac.perc.S TotalInacINTRA
#> distylous 20 20 12.873 11.486 52.849 47.151 24.359
#> Mean2Stand.TotalInacINTRA r R
#> distylous 0.581 0.609 -0.915
inaccuracy(styledimor.2antherwhorl.dat, intramorph=TRUE)
#> nL nS Inac.L Inac.S Inac.perc.L Inac.perc.S TotalInacINTRA
#> styledimorphic 20 20 5.878 3.633 61.799 38.201 9.511
#> Mean2Stand.TotalInacINTRA r R
#> styledimorphic 0.285 0.49 -0.275
inaccuracy(tristylous.dat, intramorph=TRUE)
#> Inac.L Inac.S Inac.M Inac.perc.L Inac.perc.S Inac.perc.M
#> tristylous 50.255 47.298 24.236 41.264 38.836 19.9
#> TotalInacINTRA Mean2Stand.TotalInacINTRA
#> tristylous 121.789 1.788
By default, the inaccuracy function fail to compute input data containing at least one missing data. Using the argument na.rm = TRUE will perform computation ignoring the missing value for this particular individual and variable (just like na.rm does within the mean() or sd() functions).
# This will create new objects and insert NA in the first value of every y column
enantiostylous.dat_NA <- enantiostylous.dat
distylous.dat_NA <- distylous.dat
styledimor.2antherwhorl.dat_NA <- styledimor.2antherwhorl.dat
tristylous.dat_NA <- tristylous.dat
enantiostylous.dat_NA[1,"y"] <- distylous.dat_NA[1,"y"] <- styledimor.2antherwhorl.dat_NA[1,"y"] <- tristylous.dat_NA[1,"y"]<- NA
inaccuracy(enantiostylous.dat)
#> nL nS Inac.u Inac.d Inac.perc.u Inac.perc.d TotalInac
#> enantiostylous 20 20 181.864 168.453 51.914 48.086 350.317
#> Mean2Stand.TotalInac r R
#> enantiostylous 1.062 0.881 -2.009
inaccuracy(distylous.dat)
#> nL nS Inac.u Inac.d Inac.perc.u Inac.perc.d TotalInac
#> distylous 20 20 12.807 12.261 51.089 48.911 25.068
#> Mean2Stand.TotalInac r R
#> distylous 0.597 0.609 -0.915
inaccuracy(styledimor.2antherwhorl.dat)
#> nL nS Inac.u Inac.d Inac.perc.u Inac.perc.d TotalInac
#> styledimorphic 20 20 7.565 5.617 57.387 42.613 13.182
#> Mean2Stand.TotalInac r R
#> styledimorphic 0.395 0.49 -0.275
inaccuracy(tristylous.dat)
#> nL nS nM Inac.u Inac.d Inac.b, Inac.perc.u Inac.perc.d Inac.perc.b
#> tristylous 20 20 20 28.729 29.044 16.57 38.644 39.068 22.289
#> TotalInac Mean2Stand.TotalInac r R
#> tristylous 74.343 1.091 0.382 0.207
inaccuracy(enantiostylous.dat, na.rm=T)
#> Warning in inaccuracy(enantiostylous.dat, na.rm = T): Warning: there are
#> missing data for some sex organs and/or dimensions. The values retrieved may
#> not be comparable accross populations.
#> nL nS Inac.u Inac.d Inac.perc.u Inac.perc.d TotalInac
#> enantiostylous 20 20 181.864 168.453 51.914 48.086 350.317
#> Mean2Stand.TotalInac r R
#> enantiostylous 1.062 0.881 -2.009
inaccuracy(distylous.dat, na.rm=T)
#> Warning in inaccuracy(distylous.dat, na.rm = T): Warning: there are missing
#> data for some sex organs and/or dimensions. The values retrieved may not be
#> comparable accross populations.
#> nL nS Inac.u Inac.d Inac.perc.u Inac.perc.d TotalInac
#> distylous 20 20 12.807 12.261 51.089 48.911 25.068
#> Mean2Stand.TotalInac r R
#> distylous 0.597 0.609 -0.915
inaccuracy(styledimor.2antherwhorl.dat, na.rm=T)
#> Warning in inaccuracy(styledimor.2antherwhorl.dat, na.rm = T): Warning: there
#> are missing data for some sex organs and/or dimensions. The values retrieved
#> may not be comparable accross populations.
#> nL nS Inac.u Inac.d Inac.perc.u Inac.perc.d TotalInac
#> styledimorphic 20 20 7.565 5.617 57.387 42.613 13.182
#> Mean2Stand.TotalInac r R
#> styledimorphic 0.395 0.49 -0.275
inaccuracy(tristylous.dat, na.rm=T)
#> Warning in inaccuracy(tristylous.dat, na.rm = T): Warning: there are missing
#> data for some sex organs and/or dimensions. The values retrieved may not be
#> comparable accross populations.
#> nL nS nM Inac.u Inac.d Inac.b, Inac.perc.u Inac.perc.d Inac.perc.b
#> tristylous 20 20 20 28.729 29.044 16.57 38.644 39.068 22.289
#> TotalInac Mean2Stand.TotalInac r R
#> tristylous 74.343 1.091 0.382 0.207
In datasets with multiple verticiles it is possible to focus the analysis in a given subset. For example, the code below applies the function to a subset of anthers only (namely AN1 and AN3):(
inaccuracy(enantiostylous.dat)
#> nL nS Inac.u Inac.d Inac.perc.u Inac.perc.d TotalInac
#> enantiostylous 20 20 181.864 168.453 51.914 48.086 350.317
#> Mean2Stand.TotalInac r R
#> enantiostylous 1.062 0.881 -2.009
inaccuracy(enantiostylous.dat,useonly.vert=c("ST","AN1","AN3"))
#> nL nS Inac.u Inac.d Inac.perc.u Inac.perc.d TotalInac
#> enantiostylous 20 20 186.002 165.019 52.989 47.011 351.02
#> Mean2Stand.TotalInac r R
#> enantiostylous 1.056 0.878 -2.009
All the input data used so far contains only one population, but the inaccuracy function can handle multiple populations and provide populational estimates. All the arguments detailed above behave the same regardless the number of populations:
## This code will generate a five-populations input data:
SEEDS<-4321:4325
exampleDataset<-c()
for(i in 1:length(SEEDS))
{
set.seed(SEEDS[i])
exampleDataset <- rbind(exampleDataset,SimDimor(NIDL = 10,NIDS = 10,
Nst = 1, Nan = 1, LSTmeanX = 22, LSTsdX = 0.7, LANmeanX = 6, LANsdX = 0.2,
SSTmeanX = 6, SSTsdX = 0.2, SANmeanX = 22, SANsdX = 0.7, LSTmeanY = 20,
LSTsdY = 0.5, LANmeanY = 8, LANsdY = 0.5, SSTmeanY = 8, SSTsdY = 0.5,
SANmeanY = 20, SANsdY = 0.5, LSTmeanZ = 18, LSTsdZ = 0.3, LANmeanZ = 9,
LANsdZ = 0.3, SSTmeanZ = 9, SSTsdZ = 0.3, SANmeanZ = 18, SANsdZ = 0.3,
pop_code=paste("pop",i,sep="")))
}
## Basic analysis
inaccuracy(exampleDataset)
#> nL nS Inac.u Inac.d Inac.perc.u Inac.perc.d TotalInac
#> pop1 10 10 268.295 272.289 49.631 50.369 540.584
#> pop2 10 10 277.557 270.366 50.656 49.344 547.923
#> pop3 10 10 266.543 266.738 49.982 50.018 533.281
#> pop4 10 10 257.173 264.184 49.328 50.672 521.357
#> pop5 10 10 271.842 267.075 50.442 49.558 538.916
#> Mean2Stand.TotalInac r R
#> pop1 0.919 0.666 -1.917
#> pop2 0.949 0.679 -2.009
#> pop3 0.920 0.675 -1.911
#> pop4 0.900 0.665 -1.854
#> pop5 0.931 0.672 -1.952
## Verbose
inaccuracy(exampleDataset,verbose=TRUE)
#> $Result
#> nL nS Inac.u Inac.d Inac.perc.u Inac.perc.d TotalInac
#> pop1 10 10 268.295 272.289 49.631 50.369 540.584
#> pop2 10 10 277.557 270.366 50.656 49.344 547.923
#> pop3 10 10 266.543 266.738 49.982 50.018 533.281
#> pop4 10 10 257.173 264.184 49.328 50.672 521.357
#> pop5 10 10 271.842 267.075 50.442 49.558 538.916
#> Mean2Stand.TotalInac r R
#> pop1 0.919 0.666 -1.917
#> pop2 0.949 0.679 -2.009
#> pop3 0.920 0.675 -1.911
#> pop4 0.900 0.665 -1.854
#> pop5 0.931 0.672 -1.952
#>
#> $Armbruster
#> [,1]
#> Mean.ST.u.x 14.2320135
#> Mean.ST.u.y 13.8476192
#> Mean.ST.u.z 13.5794139
#> Mean.AN.u.x 13.9981382
#> Mean.AN.u.y 13.8128908
#> Mean.AN.u.z 13.5009576
#> Mean.ST.d.x 13.7508114
#> Mean.ST.d.y 14.0241268
#> Mean.ST.d.z 13.4608860
#> Mean.AN.d.x 14.1447570
#> Mean.AN.d.y 13.8751140
#> Mean.AN.d.z 13.4616444
#> Mean.ALL.x 14.0314300
#> Mean.ALL.y 13.8899377
#> Mean.ALL.z 13.5007255
#> Inac.u.xyz 271.8416294
#> Inac.d.xyz 267.0745361
#> Inac.perc.u 50.4422852
#> Inac.perc.d 49.5577148
#> TotalInac 538.9161655
#> Mean2Stand.TotalInac 0.9306707
#>
#> $Sanchez
#> rL sdrL rS sdrS r sdr R
#> 0.4772966 0.4412540 0.4736658 0.4367706 0.6724369 0.4390123 -1.9520806
## Subsetting dimensions
inaccuracy(exampleDataset,useonly.dim = c("x","y"))
#> nL nS Inac.u Inac.d Inac.perc.u Inac.perc.d TotalInac
#> pop1 10 10 225.101 228.362 49.640 50.360 453.463
#> pop2 10 10 230.349 227.542 50.307 49.693 457.890
#> pop3 10 10 220.659 222.715 49.768 50.232 443.375
#> pop4 10 10 213.896 220.123 49.283 50.717 434.019
#> pop5 10 10 225.580 222.881 50.301 49.699 448.461
#> Mean2Stand.TotalInac r R
#> pop1 1.130 0.736 -2.589
#> pop2 1.170 0.752 -2.714
#> pop3 1.122 0.744 -2.554
#> pop4 1.106 0.735 -2.508
#> pop5 1.143 0.745 -2.626