@williaml asked for a reproducible example so that we can run the same data and code that you run when you get an error. You have already provided the function code. Now make a small data set that you know produces the error. Filter you original data to have, say, only two cities, a few years, and one scenario. If that data set is named DF, run the code
dput(DF)
and post the output here. Place a line with three back ticks just before and after the output, like this
```
output of dput() function
```
We should the be able to run the data you posted through the futurehigh function and get the same error you are getting.
missing() says whether the user of the function passed in the argument city. Since you have a not sign, if they did pass in the argument you get an error message. Doesn't seem likely that's what you want.
If you follow the suggestions from @williaml and @FJCC, even though it's a little bit of work, folks will be able to give you much better help.