diff --git a/R-package/src/xgboost_R.cc b/R-package/src/xgboost_R.cc index 665fb5faa..846ad9f47 100644 --- a/R-package/src/xgboost_R.cc +++ b/R-package/src/xgboost_R.cc @@ -195,6 +195,14 @@ SEXP XGDMatrixNumRow_R(SEXP handle) { return ScalarInteger(static_cast(nrow)); } +SEXP XGDMatrixNumCol_R(SEXP handle) { + bst_ulong ncol; + R_API_BEGIN(); + CHECK_CALL(XGDMatrixNumCol(R_ExternalPtrAddr(handle), &ncol)); + R_API_END(); + return ScalarInteger(static_cast(ncol)); +} + // functions related to booster void _BoosterFinalizer(SEXP ext) { if (R_ExternalPtrAddr(ext) == NULL) return; diff --git a/R-package/src/xgboost_R.h b/R-package/src/xgboost_R.h index 123ebe028..6e1739464 100644 --- a/R-package/src/xgboost_R.h +++ b/R-package/src/xgboost_R.h @@ -83,10 +83,16 @@ XGB_DLL SEXP XGDMatrixGetInfo_R(SEXP handle, SEXP field); /*! * \brief return number of rows - * \param handle a instance of data matrix + * \param handle an instance of data matrix */ XGB_DLL SEXP XGDMatrixNumRow_R(SEXP handle); +/*! + * \brief return number of columns + * \param handle an instance of data matrix + */ +XGB_DLL SEXP XGDMatrixNumCol_R(SEXP handle); + /*! * \brief create xgboost learner * \param dmats a list of dmatrix handles that will be cached