So we were talking about, we've done this re-scale 01 function. Now, let's say we have a change in requirements. Maybe we want to handle columns that have an infinity as one of the values. We wouldn't normally introduce infinity on purpose, but sometimes one's going to come up in our data. Let's look at what happens if we had that in our data set. I'm going to start with a data set that's just got the numbers one through 10 and infinity and travels using my re-scale function on it. Well, everything goes to zero except for infinity, which it doesn't know what to do it, so it goes to not a number. I can modify my function just by adding the finite equals true argument to my range. Let's see what's happening here. When I do that, if I look at the range, let me just set that up, and let's look at the range of x without that argument would go for one to infinity. But if I did it with that argument, so let's now add in finite equals true. Now, it goes from 1-10. It only picks the numbers that are finite in that. Now, if I did my re-scale 01 of my x vector, you see infinities still going to be at infinity, but everything else gets scaled between zero and one. I could use that as my new function and apply that to whatever I needed to apply it to, if I have found out that I may have infinite values in my data set that I want to keep infinite, but map everything else between zero and one. Now what I want you to do is stop and work a couple of exercises so that you can write your own functions. You're going to have to exercises to do at this point. The first one is, you're going to modify this function that we just wrote here. I want you to write it so that minus infinity goes to zero and infinity gets mapped to one, but the other numbers are scaled in-between. In other words, these would all remain the same, but this would also become one. If I had a negative infinity, it would also becomes zero. The second exercise you're going to do is to write a function called both underscore NA as the name of your function. It will take two vectors of the same length, and it will return the number of positions that have an NA in both vectors. For instance, if one vector is, let's say 0,1, NA, NA, NA3, negative four NA. That's one vector. The other vector is negative 3, NA, 0, NA, NA, NA, 0, 1. Then let's see. There's two positions that are both NA. Your function should return out of this, the number two, because there are two places where they are both NA. That's what your second function should do. There's a good little test case for you to run. Remember, you're going to work it out simply first with an example you can work something like this, where you could count it by hand, work it out, the logic. Then put that in a function with the function name and the inputs. Get that function working and test it on your simple case, then test it on a few other cases. Make sure when you knit your document that I can see the results of your test, when you run your code.