Posloupnost celých čísel
Funkce, které jsi napsal/a v předchozích cvičeních, prováděly výpočty a vracely jedno číslo. Můžeš ale také psát funkce, které vrátí celý vektor.
Vektor vytvoříš tak, že zadáš typ vektoru, za ním název proměnné a v závorce počet prvků. Například číselný vektor numbers s 10 prvky vytvoříš takto:
NumericVector numbers(10);
Toto cvičení je součástí kurzu
Optimizing R Code with Rcpp
Pokyny k cvičení
- Dokonči definici funkce
seq_cpp(), která přijme dvě celá číslaloahia vrátíIntegerVectors čísly mezi nimi.- Nastav návratový typ na
IntegerVector. - Vytvoř nový celočíselný vektor
sequenceo velikostin. - Uvnitř smyčky
fornastav i-tý prvek vektorusequencena hodnotuloplusi. - Vrať
sequence.
- Nastav návratový typ na
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
#include
using namespace Rcpp;
// Set the return type to IntegerVector
// [[Rcpp::export]]
___ seq_cpp(int lo, int hi) {
int n = hi - lo + 1;
// Create a new integer vector, sequence, of size n
___;
for(int i = 0; i < n; i++) {
// Set the ith element of sequence to lo plus i
___;
}
return ___;
}
/*** R
lo <- -2
hi <- 5
seq_cpp(lo, hi)
# Does it give the same answer as R's seq() function?
all.equal(seq_cpp(lo, hi), seq(lo, hi))
*/