## Speciation event is more likely if lineage's ancestor is further away from the mean trait value
distance.modify <- function(x, trait.values, lineage) {
## Distance to the parent's trait
parent_trait_val <- parent.traits(trait.values, lineage)[1]
mean_trait_val <- mean(trait.values[, 1])
distance <- abs(parent_trait_val - mean_trait_val)
## Scales x with the distance
return(x + x * distance)
}
## Make a distance modifier (speciation more likely with distance)
distance.speciation <- make.modifiers(speciation = speciation,
modify = distance.modify)
Run the code above in your browser using DataLab