From b5fb437aa7e87025f6d944965790b0cad0752930 Mon Sep 17 00:00:00 2001 From: Vadim Khotilovich Date: Tue, 26 Apr 2016 02:18:16 -0500 Subject: [PATCH] learner attribute setter & getter for R interface --- R-package/src/xgboost_R.cc | 21 +++++++++++++++++++++ R-package/src/xgboost_R.h | 17 +++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/R-package/src/xgboost_R.cc b/R-package/src/xgboost_R.cc index 066e4ae98..82ba36828 100644 --- a/R-package/src/xgboost_R.cc +++ b/R-package/src/xgboost_R.cc @@ -229,6 +229,27 @@ 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), diff --git a/R-package/src/xgboost_R.h b/R-package/src/xgboost_R.h index 517d7fd0d..1d8e2d567 100644 --- a/R-package/src/xgboost_R.h +++ b/R-package/src/xgboost_R.h @@ -101,6 +101,23 @@ XGB_DLL SEXP XGDMatrixNumCol_R(SEXP handle); */ XGB_DLL SEXP XGBoosterCreate_R(SEXP dmats); +/*! + * \brief get learner attribute value + * \param handle handle + * \param name attribute name + * \return string containing attribute value + */ +XGB_DLL SEXP XGBoosterGetAttr_R(SEXP handle, SEXP name); + +/*! + * \brief set learner attribute value + * \param handle handle + * \param name attribute name + * \param val attribute value + * \return R_NilValue + */ +XGB_DLL SEXP XGBoosterSetAttr_R(SEXP handle, SEXP name, SEXP val); + /*! * \brief set parameters * \param handle handle