We're going to talk just a little bit about function inputs. When you list your function inputs, the first input to your function should be the dataset that you wanted to operate on. This way you can use it with the pipe, if you want to use it with the pipe later on. Later arguments should be the parameters that control the details of the computation. Generally, if I have parameters and not just the data, but parameters like na.rm equals true. I should have a default specified for those, and the default should be the most commonly used value that I have, unless there's some safety reason to do it differently. We could look at some functions and see what the defaults are. Let's look at some of the common functions and see. Here I'm looking up the help on the log function and I can see, if I read down here it tells me about the logarithms and so forth, and the arguments it looks like x and the base. If I look through here, I ought to be able to find some of the defaults. Let's see. Yeah, the base for the log is e, the eXP of 1. The default for the base is 1, but I guess I can use a different base. I could say, let's look at the number 8, let's make x is 8, and if we do log of x, that's going to use the base of e, but let's try log of x and set the base. Let's say base is 2, then we find out that the log base 2 is 3. I see that this is the second argument, but if I don't specify it, it uses the default. This is an idea of how you want to use defaults in your functions. You want to use the most common entry as the default, that way if the user doesn't supply that argument, there's one supplied for them. You can look at some of these other functions and see if you can find what are the defaults for those. When you call a function, you don't want to put the name of the data argument, you don't want to say x equals so-and-so, but you do want to specify the names of the other parameters, so you don't have to remember what order you're calling them in. As long as you give it the names, then you don't have to put it in a certain order. Here's names of arguments that are standardized that you can use without making a descriptive name. You want to use descriptive names unless you're using x, y, and z which is vectors, w which is weights, df for data frame, i and j for indices, usually rows and columns, n for length or the number of rows, and p for the number of columns. Those are standardized names that you can use without using a long descriptive name.