gpt4 book ai didi

r - 使用 C 时在 R 向量中检测和分配 NA 值

转载 作者:行者123 更新时间:2023-12-02 02:21:05 25 4
gpt4 key购买 nike

我正在使用 R 的 .Call 接口(interface)来传递和返回可能包含 NA 值的实值向量 (REALSXP)。对于传递到 C 的向量,我需要检测 NA 值的存在,并且在我从 C 返回的向量中,我需要分配 NA 值。

假设 vec 是一个 SEXP 对象,它被设置为等于包含 REALSXP 对象的向量。例如,如果在 C 中分配它,代码可能是

SEXP vec;
PROTECT(vec = allocVector(REALSXP, 10));

关于检测 NA 值,我知道以下方法会起作用:

isnan(vec[index])

其中 isnan()math.h 中定义。这是检测 NA 值的首选方法吗?

我不知道如何分配 NA 值。我知道我可以做类似下面的事情,

vec[index] = 0.0/0.0;

分配一个 NaN。我不确定 R 中的 NaN 和 NA 之间到底有什么区别,但我更愿意分配 NA 而不是 NaN。

编辑

找到了答案。函数 ISNA()ISNAN() 在 R_ext/Arith.h 中定义,符号 R_NaReal 也是如此,可用于分配一个NA值。

最佳答案

找到了我的问题的答案。函数 ISNA()ISNAN() 在 R_ext/Arith.h 中定义,符号 R_NaReal 也是如此,可用于分配一个NA值。

关于r - 使用 C 时在 R 向量中检测和分配 NA 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8124596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com