У меня есть функцию bar
R, который принимает другую функцию R foo
, определяется следующим образом:Rcpp - Определить функцию С ++, которая принимает функцию R и многоточие аргумент
foo <- function(x,y) x + y
bar <- function(foo, z, ...) z + foo(...)
Вызов bar
бы из форма:
bar(foo, 1,2,3)
Теперь с foo
, как определено выше, я хочу, чтобы создать версию C++ из bar
. Вот что я пробовал:
library(Rcpp)
cppFunction(
'
double bar(Function foo, double z, ...) {
return z + foo(...);
}
')
Это явно не работает. Каким будет правильный способ определить эту функцию в C++?
Спасибо.
Если у вас есть 'Foo' и все аргументы (' ... '), доступных на стороне R, то почему бы не просто передать результат' Foo (...) 'в функцию Rcpp? Оценка 'foo (..)' из C++ всегда * будет медленнее, чем оценка 'foo (...)' непосредственно со стороны R. – nrussell