This function diversifies ABC results to avoid redundancy, with error handling to ensure results are always returned.
Usage
safe_diversify(
top_results,
diversity_method = "both",
max_per_group = 5,
min_score = 1e-04,
min_results = 5,
fallback_count = 15,
verbose = TRUE
)
Arguments
- top_results
The top ABC results to diversify
- diversity_method
Method for diversification (default: "both")
- max_per_group
Maximum results per group (default: 5)
- min_score
Minimum score threshold (default: 0.0001)
- min_results
Minimum number of desired results (default: 5)
- fallback_count
Number of top results to use if diversification fails (default: 15)
- verbose
Logical; if TRUE, print status messages (default: TRUE)
Examples
# Create example results
top_results <- data.frame(
a_term = rep("migraine", 6),
b_term = c("serotonin", "serotonin", "CGRP", "CGRP", "cortisol", "dopamine"),
c_term = c("sumatriptan", "rizatriptan", "fremanezumab", "galcanezumab", "propranolol", "amitriptyline"),
abc_score = c(0.8, 0.75, 0.7, 0.65, 0.6, 0.55)
)
# Apply diversification
diverse_results <- safe_diversify(top_results, max_per_group = 2)
print(diverse_results)
#> a_term b_term c_term abc_score
#> 1 migraine serotonin sumatriptan 0.80
#> 2 migraine serotonin rizatriptan 0.75
#> 3 migraine CGRP fremanezumab 0.70
#> 4 migraine CGRP galcanezumab 0.65
#> 5 migraine cortisol propranolol 0.60
#> 6 migraine dopamine amitriptyline 0.55