The mysteries are multiplying....
as.numeric (non_house_contact)
this code, has no apparent relation to 'df' which is the object passed to glb.nm in your example.
furthermore the str() if it is of df appears to show a different capitalisation Wave rather than wave etc, and R is case sensitive and will see these as different.
Hopefully these clues will be enough for you to progress.
If not, then you could get additional help by creating a more complete reprex, which you can read about how to do here