Merge IUCN Red List threat category into a trait data frame by matching species names.
RedToTraits <- function(IUCNGROUPtoTraits) {
RedToTraits <- matrix(
rep(NA, nrow(IUCNGROUPtoTraits)),
ncol = 1,
dimnames = list(IUCNGROUPtoTraits$Species, "IUCN")
)
for (i in 1:nrow(IUCNGROUPtoTraits)) {
selRows <- which(IUCNGROUPtoTraits$Species == IUCNGROUPtoTraits$Species[i])
if (length(selRows) > 1) {
dataAux <- IUCNGROUPtoTraits[selRows, ]
if (any(is.na(dataAux$infra_name))) {
coger <- which(is.na(dataAux$infra_name))
if (length(coger) == 1) {
RedToTraits[IUCNGROUPtoTraits$Species[i], "IUCN"] <- as.character(dataAux$categorySimp[coger])
} else {
if (length(unique(dataAux$categorySimp[coger])) == 1) {
RedToTraits[IUCNGROUPtoTraits$Species[i], "IUCN"] <-
as.character(unique(dataAux$categorySimp[coger]))
} else {
RedToTraits[IUCNGROUPtoTraits$Species[i], "IUCN"] <-
as.character(sort(unique(dataAux$categorySimp))[1])
}
}
} else {
RedToTraits[IUCNGROUPtoTraits$Species[i], "IUCN"] <-
as.character(sort(unique(dataAux$categorySimp))[1])
}
} else {
RedToTraits[IUCNGROUPtoTraits$Species[i], "IUCN"] <-
as.character(IUCNGROUPtoTraits[selRows, "categorySimp"])
}
}
return(RedToTraits)
}