Special values in continuous numerical variables/features in Random Forest I have a binary response variable I am seeking to predict using Random Forest. I have a sizable dataset of 150k rows, I have about 200 independent variables or features to use to model the outcome. 
Many of my features are continuous numerical quantities, say, taking values from 0 to 100, including decimal values therein. However, in 5% to 10% of cases, there will be special values which indicate some reason for why this variable wasn't populated for the row in question, these values are coded in the dataset as "-9", "-8", "-7" currently, even though they are really categorical values, not numerical quantities with a relation to the measure of the bulk of the data in the feature.
Can someone with Random Forest experience advise how I should prepare these data for use in a ML context, specifically with Random Forest? My instinct is to split features for which this is the case into two new feature, one with the numerical values, and NA values where there was previously a special value, and another feature with NAs for the cases where the original value was numeric, and strings for the special values, coding this as a "factor" variable (I am using R). The obvious problem with this approach is that Random Forest won't "know" that these two features are linked, and will not include them together necessarily when building trees. Maybe this isn't such a big problem given that the trees are intentionally "weak learners" that don't try to do everything alone in one tree.
Thoughts on the same feature engineering issue for use in other ML paradigms commonly used for binary classification are also valued, as this will likely end in an ensemble solution.
If it is useful, I am using H2O for this work. 
 A: 
My instinct is to split features for which this is the case into two new feature, one with the numerical values, and NA values where there was previously a special value, and another feature with NAs for the cases where the original value was numeric, and strings for the special values, coding this as a "factor" variable (I am using R).

This is exactly the correct way to go about this. Do this.

The obvious problem with this approach is that Random Forest won't "know" that these two features are linked, and will not include them together necessarily when building trees.

This should not matter. If the difference is important in your classification task, then your RF should learn it automatically. RFs are pretty good at learning interactions. And if it isn't important, then it isn't important.

Maybe this isn't such a big problem given that the trees are intentionally "weak learners" that don't try to do everything alone in one tree.

That one, too.
If you have any influence at all on the "upstream" data acquisition, try to help people to understand that encoding special values by using "obviously" invalid numericals is not good practice. Too much can go wrong when you reverse this, and there is really no good reason to do this unless you have a very specific use case.
