## Requirement: 'tibble'
# Info: Thanks to the AphiaID, this function first check WORMS to correct names and obtain the ecological data.
# Info: Using the valid name, ecological infos are also retrieved.
# Info: During the mixing of data, the Fishbase environment infos are favoured (more accurate).
# Info: On the contrary, the latitudinal infos retrieved from 4 different databases are favoured because more accurate.
consensus_ecology = function(data_multi, new_species){
ENVIRONMENT = list()
CLIMATE = list()
worms_infos = worms_ecology(data_multi)
fishbase_infos = fishbase_ecology(worms_infos$SPECIES)
consensus_infos = merge(worms_infos, fishbase_infos, by = "SPECIES")
consensus_infos = tibble::tibble(consensus_infos[!duplicated(consensus_infos$SPECIES), ])
for(i in 1:nrow(consensus_infos)){
{if(!is.na(consensus_infos$ENVIRONMENT.x[i]) && !is.na(consensus_infos$ENVIRONMENT.y[i])) ENVIRONMENT[i] = consensus_infos$ENVIRONMENT.y[i]
else if(is.na(consensus_infos$ENVIRONMENT.x[i]) && !is.na(consensus_infos$ENVIRONMENT.y[i])) ENVIRONMENT[i] = consensus_infos$ENVIRONMENT.y[i]
else if(!is.na(consensus_infos$ENVIRONMENT.x[i]) && is.na(consensus_infos$ENVIRONMENT.y[i])) ENVIRONMENT[i] = consensus_infos$ENVIRONMENT.x[i]
else if(is.na(consensus_infos$ENVIRONMENT.x[i]) && is.na(consensus_infos$ENVIRONMENT.y[i])) ENVIRONMENT[i] = NA
else stop("Unpredicted case")}
{if(!is.na(consensus_infos$CLIMATE.x[i]) && !is.na(consensus_infos$CLIMATE.y[i])) CLIMATE[i] = consensus_infos$CLIMATE.y[i]
else if(is.na(consensus_infos$CLIMATE.x[i]) && !is.na(consensus_infos$CLIMATE.y[i])) CLIMATE[i] = consensus_infos$CLIMATE.y[i]
else if(!is.na(consensus_infos$CLIMATE.x[i]) && is.na(consensus_infos$CLIMATE.y[i])) CLIMATE[i] = consensus_infos$CLIMATE.x[i]
else if(is.na(consensus_infos$CLIMATE.x[i]) && is.na(consensus_infos$CLIMATE.y[i])) CLIMATE[i] = NA
else stop("Unpredicted case")}
}
tibble::tibble(cbind(consensus_infos[1:2], consensus_infos[6], consensus_infos[5], ENVIRONMENT = unlist(ENVIRONMENT), CLIMATE = unlist(CLIMATE)))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.