C++ 在Rcpp中使用带lappy的多参数函数
我正在尝试将Rcpp Lappy函数用于具有多个参数的函数 在R中,可以使用以下代码执行相同的操作C++ 在Rcpp中使用带lappy的多参数函数,c++,rcpp,lapply,C++,Rcpp,Lapply,我正在尝试将Rcpp Lappy函数用于具有多个参数的函数 在R中,可以使用以下代码执行相同的操作 lapply(y,FUN=function(x)corr(x[,2:ncol(x)],x[,1])) 其中,corr是一个接受两个参数的函数 有人能在Rcpp中给出上述情况的示例代码吗 根据您最近的评论,如果我正确理解您的需求,您需要的是mapply而不是sapply,例如: > mapply( function(a, b) a == b, 1:9, 9:1 ) # [1] FALSE F
lapply(y,FUN=function(x)corr(x[,2:ncol(x)],x[,1]))
其中,corr是一个接受两个参数的函数
有人能在Rcpp中给出上述情况的示例代码吗 根据您最近的评论,如果我正确理解您的需求,您需要的是
mapply
而不是sapply
,例如:
> mapply( function(a, b) a == b, 1:9, 9:1 )
# [1] FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
Rcpp具有mapply
(用于两个或三个参数)
甚至使用std::equal_to
类:
// [[Rcpp::export]]
LogicalVector test( NumericVector x, NumericVector y){
return mapply( x, y, std::equal_to<double>() ) ;
}
如果我根据您最近的评论正确理解了您的需求,那么您需要的是
mapply
,而不是sapply
,例如:
> mapply( function(a, b) a == b, 1:9, 9:1 )
# [1] FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
Rcpp具有mapply
(用于两个或三个参数)
甚至使用std::equal_to
类:
// [[Rcpp::export]]
LogicalVector test( NumericVector x, NumericVector y){
return mapply( x, y, std::equal_to<double>() ) ;
}
在C++中做同样的事情,传递给一个函数,它需要一个参数。你能更具体一些吗?你尝试了什么C++代码?这就是我尝试过的代码<代码>结构比较:公共STD::BIAYARIONTROUL{BOOL操作程序()(int A,int B){Realth[A==B);};列表X(列表Y){比较C;返回LUpEy(Y,C(Y,Y))} /Cord> @ RoMnFrimoCo这可能是一个愚蠢的尝试,但我不知道其他的东西使它在C++中工作相同的事情,传递给LIAL一个有一个参数的函数。你尝试了什么C++代码?这就是我尝试过的代码<代码>结构比较:公共STD::BIAYARIONTROUL{BOOL操作程序()(int A,int B){Realth[A==B);};List x(List y){Compare c;return lappy(y,c(y,y))}@RomainFrancois这可能是一个愚蠢的尝试,但我不知道还有什么其他方法可以让它工作
// [[Rcpp::export]]
LogicalVector test( NumericVector x, NumericVector y){
return x == y ;
}