我想创建某种结构来减少我在R文件中调用的参数数量。在R中使用结构减少参数数目C使用C
在我的R档(example.R)我有类似:
ret <- .Call("example",
## data
as.double (t(x)),
as.integer (nr),
as.integer(ncol(x)),
as.double (y),
as.integer (nclass),
as.integer (cross),
.....
)
然后我的C接口文件看起来像:
SEXP example(SEXP x, SEXP rows, SEXP cols,
SEXP y, SEXP nclass, SEXP cross, SEXP sp_rows)
{
PROTECT(x = AS_NUMERIC(x ));
PROTECT(y = AS_NUMERIC(y ));
PROTECT(cross = AS_INTEGER(cross ));
PROTECT(rows = AS_INTEGER(rows ));
PROTECT(cols = AS_INTEGER(cols ));
PROTECT(nclass = AS_INTEGER(nclass));
PROTECT(sp_rows = AS_INTEGER(sp_rows ));
x_matrix = NUMERIC_POINTER(x);
y_vector = NUMERIC_POINTER(y);
int num_rows = INTEGER_VALUE(rows);
.....
的想法是创建某种结构在.R文件中,这样我就可以读取.C文件中的参数。由于所需的参数数量可能会增加,因此代码的人工可读性将大大降低。
列表会做你想要什么。和data.frame一样。 –
以及如何从C中的列表中读取? – Manolete
这是我没有做的事情,但它是可能的。德克Eddelbuettel Rcpp似乎流行。 –