作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 C 中的 R 内部接口(interface)。我需要从 C 中分析 SEXP 的内容,但我不知道确切的 SEXP 结构。有没有一种简单的方法(或一些现有代码)可以将 SEXP 转储到控制台或文件中的低级 C 对象?
最佳答案
您可以从 R 调用一个名为 inspect
的内部函数,例如
x <- list(1, 2, 3)
.Internal(inspect(x))
这给出
@7fd37292f970 19 VECSXP g0c3 [NAM(2)] (len=3, tl=0)
@7fd370b9bd28 14 REALSXP g0c1 [NAM(2)] (len=1, tl=0) 1
@7fd370b9bcf8 14 REALSXP g0c1 [NAM(2)] (len=1, tl=0) 2
@7fd370b9bcc8 14 REALSXP g0c1 [NAM(2)] (len=1, tl=0) 3
您可以从 C/C++ 调用它,如下所示:
#define R_NO_REMAP
#include <R.h>
#include <Rinternals.h>
void inspect(SEXP x) {
SEXP inspectCall = PROTECT(Rf_lang2(Rf_install("inspect"), x));
SEXP dotInternalCall = PROTECT(Rf_lang2(Rf_install(".Internal"), inspectCall));
Rf_eval(dotInternalCall, R_GlobalEnv);
UNPROTECT(2);
}
您还可以查看 Rf_PrintValue
,这是一种调用 print()
的机制。
关于c - 将 SEXP 结构转储到控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33087442/
我正在为我的应用程序使用 Tank-Auth。我唯一的问题是激活和重置帐户密码。 用于登录、注册、注销;我对这些代码没有问题; $route['login'] = "/auth/login"; $ro
我是一名优秀的程序员,十分优秀!