[Rcpp-devel] Value type of DataFrame::operator[]
Qiang Kou
qkou at qkou.info
Sat Dec 7 00:29:39 CET 2019
What about using "TYPEOF"? Please see R Internals (
https://cran.r-project.org/doc/manuals/r-release/R-ints.html#SEXPTYPEs) for
more details.
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
DataFrame rcpp_df(){
NumericVector numeric = {1,3};
IntegerVector integer = {1,3};
CharacterVector character = {"B","D"};
LogicalVector logical = {false, true};
DataFrame df = DataFrame::create(Named("numeric") = numeric,
Named("integer") = integer,
Named("character") = character,
Named("logical") = logical);
Rcpp::Rcout << "numeric:" << TYPEOF(df["numeric"]) << std::endl;
Rcpp::Rcout << "integer:" << TYPEOF(df["integer"]) << std::endl;
Rcpp::Rcout << "character:" << TYPEOF(df["character"]) << std::endl;
Rcpp::Rcout << "logical:" << TYPEOF(df["logical"]) << std::endl;
return df;
}
/*
> Rcpp::sourceCpp("test.cc")
> df <- rcpp_df()
numeric:14
integer:13
character:13
logical:10
*/
On Fri, Dec 6, 2019 at 2:59 PM Brook Milligan <brook at nmsu.edu> wrote:
> Is there a way to discover the value type for the result of calling
> DataFrame::operator[]? For example, is there a metafiction that will
> deduce the type?
>
> A similar question could be asked about the result of calling
> Vector::operator[].
>
> I understand that these functions actually return a proxy, but it would be
> very helpful to find out the underlying value type.
>
> Thanks for your help.
>
> Cheers,
> Brook
>
> _______________________________________________
> Rcpp-devel mailing list
> Rcpp-devel at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20191206/eb615b4b/attachment.html>
More information about the Rcpp-devel
mailing list