I just added a new bit of functionality to enmtools.glm. Nothing major, but it's kinda cool and it saves a bit of time when building GLMs that are strictly an additive function of a set of environment layers. It used to be that you'd have to pass enmtools.glm() a formula object in order to build a model, e.g.:
ahli.glm = enmtools.glm(f = pres ~ layer.1 + layer.2 + layer.3 + layer.4, species = ahli, env = env, test.prop = 0.2)
You CAN still do that, but now you no longer have to. Now if you don't pass it a formula, it assumes that your formula takes the form:
presence ~ layer.1 + layer.2 + ...
For every layer in your environment stack. That means you can just call it like the other enmtools modeling functions, e.g.,
ahli.glm = enmtools.glm(species = ahli, env = env, test.prop = 0.2)
And it will use all the layers in env. If you want a strictly additive formula that just uses a subset of those layers, you can just pass a subset of them to the env argument, like this:
ahli.glm = enmtools.glm(species = ahli, env = env[[c(1,3,5)]], test.prop = 0.2)
The function will then build a model using the formula
presence ~ env[] + env[] + env[]
And ignore all the other layers.
If you want some sort of more complicated functional response (polynomials, interactions, etc.), you'll still need to supply the formula manually.