원클릭으로
cpp11
R cpp11 package for C++ integration. Use for modern C++11 integration with R.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
R cpp11 package for C++ integration. Use for modern C++11 integration with R.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
R language data analysis and visualization skill. Use when user asks to (1) run R scripts or code, (2) install/update R packages, (3) perform data analysis with R, (4) create visualizations with ggplot2/plotly, (5) statistical analysis, (6) data manipulation with tidyverse/dplyr/data.table. Triggers on keywords like "R语言", "R脚本", "ggplot", "tidyverse", "数据分析", "可视化".
R DALEX package for model explanations. Use for explaining complex machine learning models.
R iml package for interpretable ML. Use for model-agnostic interpretability methods.
R lime package for local explanations. Use for explaining individual predictions with local interpretable models.
R packages for ML interpretability. Use for explaining and interpreting machine learning models.
R vip package for variable importance. Use for computing and visualizing variable importance scores.
| name | cpp11 |
| description | R cpp11 package for C++ integration. Use for modern C++11 integration with R. |
A header-only C++11 interface for R.
// myfile.cpp
#include "cpp11.hpp"
using namespace cpp11;
[[cpp11::register]]
double sum_cpp(doubles x) {
double total = 0;
for (double val : x) {
total += val;
}
return total;
}
cpp11::cpp_source("myfile.cpp")
sum_cpp(1:10)
// Read-only vectors
doubles x; // NumericVector
integers i; // IntegerVector
strings s; // CharacterVector
logicals l; // LogicalVector
raws r; // RawVector
list lst; // List
// Writable vectors
writable::doubles x;
writable::integers i;
writable::strings s;
writable::logicals l;
[[cpp11::register]]
doubles create_vec() {
writable::doubles x(10);
for (int i = 0; i < 10; i++) {
x[i] = i * 2.0;
}
return x;
}
[[cpp11::register]]
doubles named_vec() {
using namespace cpp11::literals;
writable::doubles x({"a"_nm = 1.0, "b"_nm = 2.0});
return x;
}
[[cpp11::register]]
list return_list(doubles x) {
using namespace cpp11::literals;
writable::list result;
result.push_back({"mean"_nm = mean(x)});
result.push_back({"data"_nm = x});
return result;
}
[[cpp11::register]]
data_frame create_df() {
using namespace cpp11::literals;
writable::doubles x = {1.0, 2.0, 3.0};
writable::strings y = {"a", "b", "c"};
return writable::data_frame({
"x"_nm = x,
"y"_nm = y
});
}
[[cpp11::register]]
doubles_matrix<> mat_ops(doubles_matrix<> m) {
int nrow = m.nrow();
int ncol = m.ncol();
writable::doubles_matrix<> result(nrow, ncol);
for (int i = 0; i < nrow; i++) {
for (int j = 0; j < ncol; j++) {
result(i, j) = m(i, j) * 2;
}
}
return result;
}
[[cpp11::register]]
doubles with_attrs(doubles x) {
writable::doubles y(x);
y.attr("class") = "myclass";
return y;
}
# In package DESCRIPTION
LinkingTo: cpp11
# In R/
#' @useDynLib mypackage, .registration = TRUE
NULL
// cpp11 advantages:
// - Header-only (no compilation of Rcpp)
// - Modern C++11 features
// - ALTREP support
// - Stricter type safety
// - No R API macros