Sequência de inteiros
As funções que você escreveu nos exercícios anteriores faziam cálculos e depois retornavam um único número. Você também pode escrever funções que retornam um vetor.
A sintaxe para criar um tipo de vetor é especificar o tipo do vetor, seguido pelo nome da variável e, entre parênteses, o número de elementos do vetor. Por exemplo, para criar um vetor numérico chamado numbers contendo 10 elementos, o código seria o seguinte.
NumericVector numbers(10);
Este exercicio faz parte do curso
Otimizando código R com Rcpp
Instruções do exercicio
- Complete a definição de uma função
seq_cpp()que recebe dois inteiros,loehi, e retorna umIntegerVectorcom os números entre eles.- Defina o tipo de retorno como
IntegerVector. - Crie um novo vetor de inteiros,
sequence, de tamanhon. - Dentro do loop
for, defina o elemento i-ésimo desequencecomolomaisi. - Retorne
sequence.
- Defina o tipo de retorno como
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
#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))
*/