<div dir="auto">Uhm</div><div dir="auto">Converting from one to other copy data? From dataframe to matrix at least?</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Em sáb., 30 de abr. de 2022 às 14:26, Jeff Newmiller <<a href="mailto:jdnewmil@dcn.davis.ca.us">jdnewmil@dcn.davis.ca.us</a>> escreveu:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">A data frame is designed to represent different types in different columns. A matrix is designed so that all elements are the same.<br>
<br>
It sounds like you need matrices for your algorithm. I would simply require that... or attempt to convert it immediately and stop if the result is not numeric. <br>
<br>
On April 30, 2022 10:16:04 AM PDT, Roberto Spadim <<a href="mailto:roberto@spadim.com.br" target="_blank">roberto@spadim.com.br</a>> wrote:<br>
>Hi folks!<br>
><br>
>What's the best pratices to accept a dataframe and numericmatrix in a function?<br>
><br>
>Should I have two different methods to deal with NumericMatrix and DataFrame?<br>
>Could I convert DataFrame to matrix? What's the impact of doing this,<br>
>i.e. does the as.matrix copy dataframe data?<br>
><br>
>Thanks in advance!<br>
><br>
>---<br>
>Today I'm doing something like this:<br>
><br>
>void RCPP_function(const RObject &vec, const RObject &mat) {<br>
>  if(mat.isNULL())<br>
>    Rcpp::stop("mat can't be null");<br>
>  NumericMatrix variable_matrix;<br>
>  if (is<NumericMatrix>(mat))<br>
>    variable_matrix = as<NumericMatrix>(mat);<br>
>  else<br>
>    variable_matrix = Rcpp::internal::convert_using_rfunction(mat, "as.matrix");<br>
><br>
>  NumericVector variable_vector;<br>
>  if((is<NumericVector>(target) || is<DataFrame>(target)) && !target.isNULL()){<br>
>      variable_vector=as<NumericVector>(target);<br>
>  }else{<br>
>      variable_vector=colMeans(variable_matrix);<br>
>  }<br>
><br>
>  ...<br>
>  do something with data<br>
>  but here it's sure to be:<br>
>   NumericVector (variable_vector)<br>
>   NumericMatrix (variable_matrix)<br>
>  ...<br>
>}<br>
><br>
><br>
>-- <br>
>Roberto Spadim<br>
>_______________________________________________<br>
>Rcpp-devel mailing list<br>
><a href="mailto:Rcpp-devel@lists.r-forge.r-project.org" target="_blank">Rcpp-devel@lists.r-forge.r-project.org</a><br>
><a href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel" rel="noreferrer" target="_blank">https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel</a><br>
-- <br>
Sent from my phone. Please excuse my brevity.<br>
</blockquote></div></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">Roberto Spadim<br>SPAEmpresarial - Software ERP/Scada<div>Eng. Automação e Controle, Eng. Financeira</div></div></div></div></div></div></div>