RRcpp属性
示例
Rcpp属性使使用R和C++的过程变得简单。属性的形式为:
//[[Rcpp::attribute]]
属性的使用通常与以下内容相关:
//[[Rcpp::export]]
通过读取C++文件时,将其直接放在声明的函数头的上方sourceCpp()。
以下是使用属性的外部C++文件的示例。
//将下面的代码添加到C++文件Rcpp_example.cpp中
#include <Rcpp.h>
using namespace Rcpp;
//将导出标签放置在函数声明上方。
//[[Rcpp::export]]
double muRcpp(NumericVector x){
int n = x.size(); //向量大小
double sum = 0; //总和值
//对于循环,请注意cpp索引移至0
for(int i = 0; i < n; i++){
//sum的简写=sum+x[i]
sum += x[i];
}
return sum/n; //获取并返回均值
}
//将依赖函数放在call或
//使用以下方法声明函数定义:
double muRcpp(NumericVector x);
//[[Rcpp::export]]
double varRcpp(NumericVector x, bool bias = true){
//使用C++函数计算平均值
double mean = muRcpp(x);
double sum = 0;
int n = x.size();
for(int i = 0; i < n; i++){
sum += pow(x[i] - mean, 2.0); //广场
}
return sum/(n-bias); //收益差异
}要在R中使用此外部C++文件,请执行以下操作:
require(Rcpp)
# Compile File
sourceCpp("path/to/file/Rcpp_example.cpp")
# Make some sample data
x = 1:5
all.equal(muRcpp(x), mean(x))
## TRUE
all.equal(varRcpp(x), var(x))
## TRUE
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下