How to interpret this function structure?

# Run a generalized linear regression 
glm(
  # Model no. of visits vs. gender, income, travel
  n_visits ~ gender + income + travel, 
  # Use the snake_river_visits dataset
  data = snake_river_visits, 
  # Make it a Poisson regression
  family = poisson
)
# From previous step
run_poisson_regression <- function(data, formula) {
  glm(formula, data, family = poisson)
}

# Re-run the Poisson regression, using your function
model <- snake_river_visits %>%
  run_poisson_regression(n_visits ~ gender + income + travel)

I don't understand. Before we create the function, I know glm used the form of y~x1+x2+x3. But in the function we create, the 2 arguments don't have such y and x. How can I use this function to do glm?

Hello, can you give a little more information. What packages are you using? Is this a tutorial that you are following?

Yes, it's a tutorial from DataCamp. There is no explicit package.

If I asked you to draw a graph of y=x^2 you would know what to do.
And the same, I suppose, for the case a=b^2 .

The formula in glm goes in exactly the same way:
a dependent variable before the ~ and the dependent variables after the ~ .
How these variables are called is not important; only the role they play : dependent of independent.

But I didn't see the notation '~' in the function.

The formula should contain the ~.

The phrase

model <- snake_river_visits %>%
  run_poisson_regression(n_visits ~ gender + income + travel)

uses the magrittr package but means

model <-  run_poisson_regression(snake_river_visits, 
        n_visits ~ gender + income + travel)

where snake_river_visits plays the role of data and
n_visits ~ gender + income + travel plays the role of formula in the function run_poisson_regression .

1 Like