我想将一个简单的s4对象传递给C并将其转换为一个简单的结构。我在想像R代码
setClass("MyClass", slots = list(x = "numeric", y = "integer"))
r_instance = new("MyClass", x = rnorm(5), y = as.integer(1:10))
dyn.load("parse.so")
.Call("parse", r_instance)
和 parse.c
#include <R.h>
#include <Rinternals.h>
#include <Rmath.h>
typedef struct {
double x;
int y;
} MyStruct;
SEXP parse(SEXP r_instance){
MyStruct c_instance = MAKE_S4_INTO_STRUCT(r_instance);
printf("%g %d\n", c_instance->x[0], c_instance->y[0]);
return R_NilValue;
}
是否有MAKE_S4_INTO_STRUCT
可以使之工作的功能?在Hadley的C接口页面或R扩展手册中没有找到答案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句