Chapter 7 Data types
All the basic data types and data structures provided by R are available in Rcpp. By using these data types, you can directly access the objects that exist in R.
7.1 Vector and Matrix
Following seven data types are often used in R.
logical
integer
numeric
complex
character
Date
POSIXct
There are vector type and matrix types in Rcpp corresponding to those of R.
In this document, the word Vector
and Matrix
is used to specify all the vector and matrix types in Rcpp.
The table below presents the correspondence of data types between R/Rcpp/C++.
Value | R vector | Rcpp vector | Rcpp matrix | Rcpp scalar | C++ scalar |
---|---|---|---|---|---|
Logical | logical |
LogicalVector |
LogicalMatrix |
- | bool |
Integer | integer |
IntegerVector |
IntegerMatrix |
- | int |
Real | numeric |
NumericVector |
NumericMatrix |
- | double |
Complex | complex |
ComplexVector |
ComplexMatrix |
Rcomplex |
complex |
String | character |
CharacterVector (StringVector ) |
CharacterMatrix (StringMatrix ) |
String |
string |
Date | Date |
DateVector |
- | Date |
- |
Datetime | POSIXct |
DatetimeVector |
- | Datetime |
time_t |
7.2 data.frame, list, S3, S4
Other than Vector
and Matrix
, There are several data structures in R such as data.frame, list, S3 class and S4 class. You can handle all of these data structures in Rcpp.
R | Rcpp |
---|---|
data.frame |
DataFrame |
list |
List |
S3 class | List |
S4 class | S4 |
In Rcpp, Vector
, DataFrame
, List
are all implemented as kinds of vectors. Namely, Vector
is a vector that its elements are scalar values, DataFrame
is a vector that its elements are Vector
s, List
is a vector that its elements are any kind of data types. Thus, Vector
, DataFrame
, List
has many common member functions in Rcpp.