r - 如何包含 nmath.h?

标签 r

我想包含标题 nmath.h我的 C代码(在 R 包内)来查找 R_FINITEML_ERR_return_NAN .我发现一个不能包含nmath.h直接地。对于 R_FINITE被发现,我可以包括 R_ext/libextern.h .但我不知道要包含哪些内容,以便 ML_ERR_return_NAN被发现。有任何想法吗?我找到了 here Brian Ripley 教授提到了编写 R 扩展,但我找不到 nmath.h在那里被解决(具体在哪里?)

最佳答案

在 Debian 或 Ubuntu 上:

 sudo apt-get install r-mathlib

之后,您可以构建测试程序,例如:
// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; 
//          compile-command: "gcc -s -Wall -O3 \
//               -I/usr/share/R/include -o rmath_rnorm \
//               rmath_rnorm.c -lRmath -lm" -*-

// Compare to 
//    $ Rscript -e "RNGkind('Marsaglia'); \
//                 .Random.seed[2:3] <- c(123L, 456L); rnorm(2)"
//    [1] -0.2934974 -0.3343770

#include <stdio.h>

#define MATHLIB_STANDALONE 1
#include <Rmath.h>

int main(void) {

    set_seed(123, 456);
    printf("rnorm: %f %f\n", rnorm(0.0, 1.0), rnorm(0.0, 1.0));

    return 0;
}

注意:前四行应该是你安全的文件中的一行,然后 M-x compile 为你构建程序。 Rscript 调用同上:一行。

编辑: Drats。回答了错误的问题 :) nmath.h 似乎不是从 src/nmath/nmath.h 导出的,但是这个 R Mathlibrary 是由 R Core 导出供其他人使用的。 nmath.h 文件所在的位置
/* Private header file for use during compilation of Mathlib */
#ifndef MATHLIB_PRIVATE_H
#define MATHLIB_PRIVATE_H

所以你不应该依赖它。

关于r - 如何包含 nmath.h?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29083420/

相关文章:

r - 将参数传递给 R 中的自定义函数和过滤器

r - 从同一包中的 R 代码调用 Rcpp c++​​ 函数

r - 在 Linux Ubuntu 16.10 上安装 Pre-Release R 3.3.2

r - ggplot增加边界线粗细

r - 修剪具有控制字符空格的字符串

R根据行值将索引列添加到数据框

r - namespaceExport(ns,exports) : undefined exports: . 中的错误.. 错误:包或命名空间加载失败

R中数据的行比较

r - 在ggplot2中注释轴

r - R 中的键值映射