Rcpp中是否有SEXP声明的示例?

时间:2019-01-09 10:38:15

标签: r rcpp

我在Hadley Wickham的书中读到,RObjects应该在R的C API中声明为S表达式(SEXP):

SEXP x( SEXP a, SEXP b {
}

但是,在Rcpp中,这种必要性似乎已经结束。换句话说,应使用某些已定义的数据类型声明函数,例如:

NumericVector x(NumericVector a, NumericVector b) {
 }

在Rcpp的上下文中是否有SEXP声明仍然有用的示例?

1 个答案:

答案 0 :(得分:4)

当然是 ,因为所有内容都与SEXP进行了互译。在某些情况下,我们选择保留SEXP

一个“经典”示例是run-time switching on type(其中显示了List,但是您可以使用单个SEXP来完成此操作)。其他示例是as<>wrap()转换器。

还有...当然是用户选择保留SEXP的代码。您可以在Rcpp Gallery上搜索更多示例,和/或当然也可以在大约2000个问题中搜索Rcpp。