我正在考虑使用一些 C++ 来处理我的 R 包的简单部分Rcpp
。我是 C++ 新手(但渴望学习!)。我已经使用优秀的实现了一些简单的 cpp 程序Rcpp
- 事实上,这个包激励我学习 C++...
无论如何,我遇到了一个简单的问题,如果我能解决这个问题会很有帮助。我有一个NumericVector
我想子集然后排序。下面的代码对整个向量进行排序(并且还将处理 NA,这是我需要的)。
我的问题是,假设我想提取该向量的一部分,对其进行排序并使其可用于其他处理 - 我该怎么做?例如,对于一个长度为 10 的向量,我如何提取和排序 5:10 的元素?
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
RcppExport SEXP rollP(SEXP x) {
NumericVector A(x); // the data
A = sort_unique(A);
return A;
}
我从 R 中调用:
sourceCpp( "rollP.cpp")
rollP(10:1)
# [1] 1 2 3 4 5 6 7 8 9 10