Rcpp中NumericVectors的条件更新

时间:2019-02-11 13:34:59

标签: c++ r rcpp

select b.First_Name, b.Title, c.Project_ID from HumanResources.Employees b inner join ProjectDetails.TimeCards c on b.Employee_ID = c.Employee_ID inner join ProjectDetails.Projects d on d.Project_ID=c.Project_ID 中,我将使用它来更新匹配条件条件的向量中的值:

R

如果我的a <- rep(seq(1:20),5) a[a==5] <- 100 的NumericVector如何使用Rcpp来做?

我是a的新手,目前我唯一想到的方法是遍历Rcpp中的每个值。我正在使用这个:

a

有没有没有循环或更少代码行的方法?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

对于像这样的标准算法,您可能会发现它已在标准库中实现:

#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::export]]
NumericVector replace(NumericVector x) {
  std::replace(x.begin(), x.end(), 5, 100);
  return x;
}


/*** R
a <- rep(seq(1:20),5)
replace(a)
a
*/

请注意,如果输入a已经是double类型,它将被修改。