R/addAnimalsWithNoRelative.R
addAnimalsWithNoRelative.Rd
This allows kin
to be used with setdiff
when there are no
relatives otherwise an error would occur because
kin[['animal_with_no_relative']]
would not be found. See the
following: in groupAddAssign
addAnimalsWithNoRelative(kin, candidates)
kin | dataframe with kinship values |
---|---|
candidates | character vector of IDs of the animals available for use in the group. |
A dataframe with kinships in long form after adding a row for each animal without a relative.
available[[i]] <- setdiff(available[[i]], kin[[id]])
# \donttest{ examplePedigree <- nprcgenekeepr::examplePedigree ped <- qcStudbook(examplePedigree, minParentAge = 2, reportChanges = FALSE, reportErrors = FALSE) kmat <- kinship(ped$id, ped$sire, ped$dam, ped$gen, sparse = FALSE) currentGroups <- list(1) currentGroups[[1]] <- examplePedigree$id[1:3] candidates <- examplePedigree$id[examplePedigree$status == "ALIVE"] threshold <- 0.015625 kin <- getAnimalsWithHighKinship(kmat, ped, threshold, currentGroups, ignore = list(c("F", "F")), minAge = 1) # Filtering out candidates related to current group members conflicts <- unique(c(unlist(kin[unlist(currentGroups)]), unlist(currentGroups))) candidates <- setdiff(candidates, conflicts) kin <- addAnimalsWithNoRelative(kin, candidates) length(kin) # should be 2416#> [1] 2416kin[["1SPLS8"]] # should have 14 IDs#> [1] "U9APLW" "UXP8J1" "T8A10R" "09LFE4" "3QHAFI" "LNVD11" "9MVUD5" "CHSCFG" #> [9] "FCLNFN" "RY1AZM" "SJCRF2" "653J82" "9BFQSJ" "9Z4SSW"# }