我想创建某种结构来减少从 R 文件调用的参数数量。
在我的 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 文件中的参数。因为需要的参数数量可能会增加,所以代码的人类可读性会急剧下降。