我希望将一个简单的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扩展手册中找到答案。
https://stackoverflow.com/questions/30586297
复制相似问题