This is probably not the clean solution you are looking for, but here is the way forward. The problem is twofold:
1) the value of the variables NA must be imputed on the basis of the same protocol of imputation at which the source data were created.
2) the result should be predicted based on this conditional value, but in accordance with the original random forest without new data.
1
Note the new observation on the imputed (rather than the original) data set (i.e. use the already imputed data that you already received) and attach the new missing values. The new value does not correspond to the imputed initial observation (it should not).
iris.na2 = rbind (iris.imputed, iris.na [148,, drop = FALSE])
iris.imputed2 = rfImpute (Species ~., iris.na2)
>>> tail (iris.imputed, 3)
Species Sepal.Length Sepal.Width Petal.Length Sepal.Width
148 virginica 6.5 3.019279 5.2 2.0
149 virginica 6.2 3.400000 5.4 2.3
150 virginica 5.9 3.000000 5.1 1.8
>>> tail (iris.imputed2,4)
Species Sepal.Length Sepal.Width Petal.Length Sepal.Width
148 virginica 6.5 3.019279 5.2 2.0
149 virginica 6.2 3.400000 5.4 2.3
150 virginica 5.9 3.000000 5.1 1.8
1481 virginica 6.5 3.023392 5.2 2.0
2
Predict new imputed observation using information from the source random forest.
predict (iris.rf, iris.imputed2 [151,])
1481
virginica
Levels: setosa versicolor virginica
There will be problems with dispersion because you do not include the uncertainty implicit in using the imputed data to impose another data point. One way around this is to download.
This works if there is no dependent variable (to predict it does not depend on the dependent variable, so you can just give a matrix of independent variables):
>>> missY = cbind (NA, iris.imputed2 [151, 2: 5])
>>> missY
NA Sepal.Length Sepal.Width Petal.Length Petal.Width
1481 NA 6.5 3.023392 5.2 2
>>> predict (iris.rf, missY)
1481
virginica
Levels: setosa versicolor virginica