我正在研究使用Rcpp
包,为我的R包中的一些简单部分使用C++。我是一个C++新手(但很想学习!)。我已经使用优秀的Rcpp
实现了一些简单的cpp程序 - 实际上,这个包激励我学习C++...
无论如何,我卡在了一个简单的问题上,如果能解决就会有帮助。我有一个NumericVector
,我想对其进行子集划分并排序。下面的代码对整个向量进行排序(并且还会处理NAs,这正是我需要的)。
我的问题是,假设我想提取此向量的一部分,对其进行排序,并使其可用于其他处理 - 我该怎么做?例如,对于长度为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