C接口到R:双数组到SEXP矩阵

时间:2016-09-11 21:47:24

标签: c arrays r

我正在使用Writing R Extensions手册学习R的C接口,我对将原生C阵列转换回SEXP感到困惑。例如,双精度BLAS程序会产生一个我想要返回R的双数组。是否有内置函数将整个数组转换为矢量或矩阵SEXP类型?我知道我可以使用REAL()函数从SEXP获取数组,但有一个"向后"功能呢?

例如,来电yada(C, ...)需要double *C并在*C中提供结果。目前,我正在使用诸如

之类的循环
SEXP result = PROTECT(allocVector(REALSXP, n_result));
double *pResult = REAL(result);
for (int i = 0; i < n_result; i++) {
        pResult[i] = C[i];
}

将值转换为正确的SEXP类型以返回,但是有更好的方法吗?

感谢您的帮助。我是C的新手,如果我有一个更简单的方法可以忽略,我会道歉。

0 个答案:

没有答案