Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在Rcpp中使用带lappy的多参数函数_C++_Rcpp_Lapply - Fatal编程技术网

C++ 在Rcpp中使用带lappy的多参数函数

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

我正在尝试将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 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 ;
}