fix attribute accessors C-interface for R
This commit is contained in:
@@ -229,27 +229,6 @@ SEXP XGBoosterCreate_R(SEXP dmats) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
SEXP XGBoosterGetAttr_R(SEXP handle, SEXP name) {
|
||||
const char* ret;
|
||||
R_API_BEGIN();
|
||||
int success;
|
||||
CHECK_CALL(XGBoosterGetAttr(R_ExternalPtrAddr(handle),
|
||||
CHAR(asChar(name)),
|
||||
&ret,
|
||||
&success));
|
||||
R_API_END();
|
||||
return mkString(ret);
|
||||
}
|
||||
|
||||
SEXP XGBoosterSetAttr_R(SEXP handle, SEXP name, SEXP val) {
|
||||
R_API_BEGIN();
|
||||
CHECK_CALL(XGBoosterSetAttr(R_ExternalPtrAddr(handle),
|
||||
CHAR(asChar(name)),
|
||||
CHAR(asChar(val))));
|
||||
R_API_END();
|
||||
return R_NilValue;
|
||||
}
|
||||
|
||||
SEXP XGBoosterSetParam_R(SEXP handle, SEXP name, SEXP val) {
|
||||
R_API_BEGIN();
|
||||
CHECK_CALL(XGBoosterSetParam(R_ExternalPtrAddr(handle),
|
||||
@@ -388,3 +367,32 @@ SEXP XGBoosterDumpModel_R(SEXP handle, SEXP fmap, SEXP with_stats) {
|
||||
R_API_END();
|
||||
return out;
|
||||
}
|
||||
|
||||
SEXP XGBoosterGetAttr_R(SEXP handle, SEXP name) {
|
||||
SEXP out;
|
||||
R_API_BEGIN();
|
||||
int success;
|
||||
const char *val;
|
||||
CHECK_CALL(XGBoosterGetAttr(R_ExternalPtrAddr(handle),
|
||||
CHAR(asChar(name)),
|
||||
&val,
|
||||
&success));
|
||||
if (success) {
|
||||
out = PROTECT(allocVector(STRSXP, 1));
|
||||
SET_STRING_ELT(out, 0, mkChar(val));
|
||||
} else {
|
||||
out = PROTECT(R_NilValue);
|
||||
}
|
||||
UNPROTECT(1);
|
||||
R_API_END();
|
||||
return out;
|
||||
}
|
||||
|
||||
SEXP XGBoosterSetAttr_R(SEXP handle, SEXP name, SEXP val) {
|
||||
R_API_BEGIN();
|
||||
CHECK_CALL(XGBoosterSetAttr(R_ExternalPtrAddr(handle),
|
||||
CHAR(asChar(name)),
|
||||
CHAR(asChar(val))));
|
||||
R_API_END();
|
||||
return R_NilValue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user