Chapter 21 R-like functions
Here is a list of Rcpp functions similar to R functions.
Also, if you can guarantee that NA
is not included in the vector given to these functions, you can use noNA()
to mark the vector. Then the functions below no longer checks for NA
, so the calculation may speed up.
NumericVector res = mean(noNA(v));
21.1 List of R-like functions
- Vector related functions
- String related functions
- Functions related to finding values
- Functions related to duplicated values
- Functions related to set operation
- Functions related to maximum and minimum values
- Functions related to summaries
- Functions related to rounding values
- Functions related to math
- Functions related to logical values
- Functions related to NA Inf NaN
- apply functions
- cbind function
21.1.3 Finding values
match(v, table)
Returns an integer vector containing the R style numerical index (starting from 1) of the element of vector table
that match value to each elements of vector x
. Namely、if you execute res = match(v, table);
, then it will be res[i] == j+1
where j
equals to minimum j
satisfying v[i] == table[j]
self_match(v)
Synonymous with passing the same vector to match (v, table)
.
which_max(v)
Returns the numerical index of the largest element of the vector v.
which_min(v)
Returns the numerical index of the smallest element of the vector v.
21.1.4 Duplicated values
duplicated(v)
Returns a vector containing 1 if the value of each element of vector v exists in the previous element, containing 0 if not.
unique(v)
Returns a vector that eliminates the duplication of the element value from the vector v
.
sort_unique(v)
Returns a vector that eliminates the duplication of the element value from the vector v
and sorts the values in ascending order.
21.1.5 Set operation
setdiff(v1,v2)
Returns a vector obtained by subtracting the value of the unique element of the vector v2
from the unique element of the vector v1
.
setequal(v1,v2)
Returns true if the unique element of vector v1
is equal to the unique element of vector v2
.
intersect(v1,v2)
Returns a vector containing elements contained in both the unique element of vector v1
and the unique element of vector v2
.
union_(v1,v2)
Return vector which eliminated value duplication after combining elements of vector v1
and vector v2
.
21.1.12 apply functions
lapply(x, fun)
Applies a C++ function fun
to each element of the vector x
and returns the result as List
.
sapply(x, fun)
Applies a C++ function fun
to each element of the vector x
and returns the result as Vector
.
mapply(x1, x2, fun2)
Applies a C++ function fun
that receives two arguments to each corresponding elements of the vector x1
and x2
and returns the result as Vector
.
mapply(x1, x2, x3, fun3)
Applies a C++ function fun
that receives three arguments to each corresponding elements of the vector x1
and x2
, x3
and returns the result as Vector
.
21.1.13 cbind function
cbind(x1, x2,…)
Takes Vector
or Matrix
x1
and x2
, ...
and combine by columns. And returns the result as Matrix
or DataFrame
. You can pass up to 50 arguments.
21.1.14 sampling
Vector sample(Vector x, int size, replace = false, probs = R_NilValue)
As with the sample
function in R, this function takes a sample from a vector x
.
x
: a vector you want to draw a sample.size
: sample size of returned vector.replace
: should sampling be with replacement. defaulttrue
.probs
: a vector that specify probability weights to be drawn for each elements of vectorx
. defaultR_NilValue
(same weight for all elements).
Vector<RTYPE> sample(const Vector<RTYPE>& x, int size, bool replace = false, sugar::probs_t probs = R_NilValue)
sample(n, size, replace = TRUE, probs = NULL, one_based = TRUE)
As with the sample.int
function in R.
Vector<INTSXP> sample(int n, int size, bool replace = false, sugar::probs_t probs = R_NilValue, bool one_based = true);