<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Replacing</div><div dir="ltr">ids <- rownames(features)</div><div dir="ltr">with</div><div dir="ltr">ids <- rownames(predicted)</div><div>is the only edit I did after the previous try, so this should have solved the error. </div><div><br></div><div>If I understood correctly na.action = na.exclude can help to work around the NA values without deleting rows but somehow I did not work. The user can always compare the original data rows to the results, right? As in my case, comparing the results file to the vector file shows that 17849 of 17851 segments were classified as expected from the error. I did not loose any original data and also saved a copy. If you mention in the manual that intermediate na values might block the analyses and will therefore be omitted from the final results, it should be perfectly fine.</div><div>I noticed a minor issue; not all results were added to the vector file - about 686 segments (almost 4% of the data) were somehow missed. Fortunately I do have the results as separate output file.  </div><div><br></div><div>Best,</div><div>Jamille</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Apr 16, 2019 at 10:04 AM Moritz Lennert <<a href="mailto:mlennert@club.worldonline.be">mlennert@club.worldonline.be</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 16/04/19 14:37, Jamille Haarloo wrote:<br>
> Hi Moritz,<br>
> <br>
> Thank you! it worked.<br>
<br>
What worked, exactly ? ;-)<br>
<br>
<br>
> I did not find the line nor similar lines of 'features <- <br>
> na.omit(features)' in the v.class.mlR script/ R_script4 file.<br>
<br>
Sorry, I am working with a heavily modified version here on my computer <br>
currently, and didn't realize that this was part of my local modifications.<br>
<br>
I also see that in the manual I actually wrote "The module makes no <br>
effort to check the input data for NA values or anything else that might <br>
perturb the analyses. It is up to the user to proceed to relevant checks <br>
before launching the module."<br>
<br>
I could add an na.omit to the code. What is your opinion on that as a <br>
user ? Isn't it too invasive to just force this on the user ? I do <br>
acknowledge that in my local case it is convenient.<br>
<br>
Moritz<br>
<br>
> <br>
> Best,<br>
> Jamille<br>
> <br>
> On Mon, Apr 15, 2019 at 11:09 AM Moritz Lennert <br>
> <<a href="mailto:mlennert@club.worldonline.be" target="_blank">mlennert@club.worldonline.be</a> <mailto:<a href="mailto:mlennert@club.worldonline.be" target="_blank">mlennert@club.worldonline.be</a>>> wrote:<br>
> <br>
>     Hi Jamille,<br>
> <br>
>     On 15/04/19 14:49, Jamille Haarloo wrote:> Dear Moritz and other Grass-<br>
>     users and developers,<br>
>       ><br>
>       > I tried dealing with the error myself by changing predicted <-<br>
>       > data.frame(predict(<a href="http://models.cv" rel="noreferrer" target="_blank">models.cv</a> <<a href="http://models.cv" rel="noreferrer" target="_blank">http://models.cv</a>><br>
>     <<a href="http://models.cv" rel="noreferrer" target="_blank">http://models.cv</a>>, features)) into<br>
>       > predicted <- data.frame(predict(<a href="http://models.cv" rel="noreferrer" target="_blank">models.cv</a> <<a href="http://models.cv" rel="noreferrer" target="_blank">http://models.cv</a>><br>
>     <<a href="http://models.cv" rel="noreferrer" target="_blank">http://models.cv</a>>, features,<br>
>       > na.action = na.exclude)), based on discussions online implying some<br>
>       > predictions might be invalid NaN values. I checked the script<br>
>     output to<br>
>       > see if this change was implemented and it was, but I get the<br>
>     same error.<br>
>       > Any suggestions what to try next?><br>
>       > ------------------------------<br>
>       > v.class.mlR -i --overwrite segments_map=nvSegW24IDM4DV4@LUP1<br>
>       > training_map=TrainingApril2019@LUP1 train_class_column=class_code<br>
>       > output_class_column=output_class output_prob_column=probability<br>
>       > classifiers=svmLinear,rf,xgbTree folds=5 partitions=10 tunelength=10<br>
>       > weighting_modes=bwwv,qbwwv weighting_metric=accuracy<br>
>       ><br>
>     classification_results=C:\Users\haarlooj\Documents\CELOS\v.class.mlr_outputapril2019\results_all_classifiers<br>
> <br>
> <br>
>       ><br>
>     accuracy_file=C:\Users\haarlooj\Documents\CELOS\v.class.mlr_outputapril2019\accuracy_classifiers<br>
> <br>
> <br>
>       ><br>
>     model_details=C:\Users\haarlooj\Documents\CELOS\v.class.mlr_outputapril2019\details_classifier_module_runs<br>
> <br>
> <br>
>       ><br>
>     bw_plot_file=C:\Users\haarlooj\Documents\CELOS\v.class.mlr_outputapril2019\box-whicker_classifier_performance<br>
> <br>
> <br>
>       ><br>
>     r_script_file=C:\Users\haarlooj\Documents\CELOS\v.class.mlr_outputapril2019\R_script4<br>
> <br>
> <br>
>       > processes=3<br>
>     Normally, there should be no NA in the features as there is a line:<br>
> <br>
>     features <- na.omit(features)<br>
> <br>
>     early in the R script. Can you see it in the R_script4 file ?<br>
> <br>
> <br>
>       > Running R now. Following output is R output.<br>
>       > During startup - Warning messages:<br>
>       > 1: Setting LC_CTYPE=en_US.cp1252 failed<br>
>       > 2: Setting LC_COLLATE=en_US.cp1252 failed<br>
>       > 3: Setting LC_TIME=en_US.cp1252 failed<br>
>       > 4: Setting LC_MONETARY=en_US.cp1252 failed<br>
>       > Loading required package: caret<br>
>       > Loading required package: lattice<br>
>       > Loading required package: ggplot2<br>
>       > Warning messages:<br>
>       > 1: package 'caret' was built under R version 3.5.3<br>
>       > 2: package 'ggplot2' was built under R version 3.5.3<br>
>       > Loading required package: foreach<br>
>       > Loading required package: iterators<br>
>       > Loading required package: parallel<br>
>       > Warning messages:<br>
>       > 1: package 'doParallel' was built under R version 3.5.3<br>
>       > 2: package 'foreach' was built under R version 3.5.3<br>
>       > 3: package 'iterators' was built under R version 3.5.3<br>
>       > During startup - Warning messages:<br>
>       > 1: Setting LC_CTYPE=en_US.cp1252 failed<br>
>       > 2: Setting LC_COLLATE=en_US.cp1252 failed<br>
>       > 3: Setting LC_TIME=en_US.cp1252 failed<br>
>       > 4: Setting LC_MONETARY=en_US.cp1252 failed<br>
>       > During startup - Warning messages:<br>
>       > 1: Setting LC_CTYPE=en_US.cp1252 failed<br>
>       > 2: Setting LC_COLLATE=en_US.cp1252 failed<br>
>       > 3: Setting LC_TIME=en_US.cp1252 failed<br>
>       > 4: Setting LC_MONETARY=en_US.cp1252 failed<br>
>       > During startup - Warning messages:<br>
>       > 1: Setting LC_CTYPE=en_US.cp1252 failed<br>
>       > 2: Setting LC_COLLATE=en_US.cp1252 failed<br>
>       > 3: Setting LC_TIME=en_US.cp1252 failed<br>
>       > 4: Setting LC_MONETARY=en_US.cp1252 failed<br>
>       > Error in data.frame(id = rownames(features), predicted) :<br>
>       >    arguments imply differing number of rows: 17851, 17849<br>
>       > Execution halted<br>
>     IDs are taken from the features and for some reasons there are two<br>
>     features which do not have a prediction. It might help if you could<br>
>     find<br>
>     out why.<br>
> <br>
>     I cannot test right now, but you might want to check if you can replace<br>
> <br>
>     ids <- rownames(features)<br>
> <br>
>     with something like<br>
> <br>
>     ids <- rownames(predicted)<br>
> <br>
>     ?<br>
> <br>
>     Moritz<br>
> <br>
<br>
<br>
</blockquote></div></div></div></div></div></div></div></div></div></div></div>