返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Rcpp和RcppArmadillo创建R语言包的实现方式
  • 388
分享到

Rcpp和RcppArmadillo创建R语言包的实现方式

2024-04-02 19:04:59 388人浏览 安东尼
摘要

目录1. 预先准备源文件示例func.cpp头文件示例test_h.h2. 创建R包步骤新建R PackageR包的文件结构修改DESCRIPTioN文件3. c++11标准问题1.

1. 预先准备

windows下需要安装Rtools,R中装好Rcpp和RcppArmadillo。创建C++源文件func.cpp,自定义头文件test_h.h

源文件示例func.cpp


// [[Rcpp::depends(RcppArmadillo)]]
// [[Rcpp::plugins(cpp11)]]
#include <RcppArmadillo.h>
#include <vector>
#include "./test_h.h"

using namespace Rcpp;
using namespace std;
// using namespace arma;

// [[Rcpp::export]]
RObject func(){
  arma::cube A(3,4,5,arma::fill::randu);
  std::cout<<CONDIT<<std::endl;
  return wrap(A);
}

// [[Rcpp::depends(RcppArmadillo)]]:用于指明需要使用RcppArmadillo。

// [[Rcpp::plugins(cpp11)]]:指明需要使用C++11。

#include "./test_h.h":表示使用第三方头文件。第三方头文件需要用双引号""包括起来,并加上.h./表示在当下文件夹(src)下搜寻文件。

// using namespace arma;不一定有用。如果要用Armadillo的数据结构,在其之前需指明arma::

func()函数将可以直接在R中调用。

头文件示例test_h.h

 


#include <iOStream>
#define CONDIT 1000

2. 创建R包步骤

新建R Package

1

选择Package w/Rcpp, 并添加源文件。或者建立包以后,手动复制到src文件夹下。

2

R包的文件结构

这里写图片描述

修改DESCRIPTION文件

将RcppArmadillo添加进Imports和LinkingTo中。


Package: RcppPackTest
Type: Package
Title: What the Package Does (Title Case)
Version: 0.1.0
Author: Who wrote it
Maintainer: The package maintainer <yourself@somewhere.net>
Description: More about what it does (maybe more than one line)
    Use four spaces when indenting paragraphs within the Description.
License: What license is it under?
Encoding: UTF-8
LazyData: true
Imports: Rcpp (>= 0.12.11), RcppArmadillo
LinkingTo: Rcpp, RcppArmadillo

Build & Reload 建立包

3. C++11标准问题

如果要使用C++11标准,第一种方法是在Makevars文件中添加如下代码:


CXX = g++-4.8.1
PKG_CXXFLAGS = -std=c++11

第二种方法是在.cpp文件前添加// [[Rcpp::plugins(cpp11)]]

以上就是Rcpp和RcppArmadillo创建R包实现方式的详细内容,更多关于Rcpp和RcppArmadillo创建R包的资料请关注编程网其它相关文章!y

--结束END--

本文标题: Rcpp和RcppArmadillo创建R语言包的实现方式

本文链接: https://lsjlt.com/news/156613.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Rcpp和RcppArmadillo创建R语言包的实现方式
    目录1. 预先准备源文件示例func.cpp头文件示例test_h.h2. 创建R包步骤新建R PackageR包的文件结构修改DESCRIPTION文件3. C++11标准问题1....
    99+
    2024-04-02
  • Rcpp和RcppArmadillo如何创建R语言包
    小编给大家分享一下Rcpp和RcppArmadillo如何创建R语言包,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 预先准备Windows下需要安装Rtoo...
    99+
    2023-06-25
  • R语言创建矩阵的实现方法
    矩阵 向量vector用于描述一维数据,是R语言中最基础的数据结构形式 矩阵matrix可以描述二维数据,和向量相似,其内部元素可以是实数、复数、字符、逻辑型数据 矩阵...
    99+
    2024-04-02
  • R语言通过parallel包实现多线程运行方式
    总的来说,R的运算速度不算快,不过类似并行运算之类的改进可以提高运算的性能。下面非常简要地介绍如何利用R语言进行并行运算 library(parallel) cl.cores &...
    99+
    2024-04-02
  • R语言 实现多行注释的方式
    R语言本身并没有类似C/ C++/ JAVA这些语言一样提供 像 一样的多行注释,但我们也有其他方法可以达到这种方法。 一. if语句 我们可以通过一个if语句,里面添加一个永为假...
    99+
    2024-04-02
  • r语言安装包的方式有哪些
    在R语言中,有以下几种安装包的方式: CRAN(Comprehensive R Archive Network):CRAN是R语...
    99+
    2023-10-23
    r语言
  • R语言中怎么创建交互式文档和报告
    要创建交互式文档和报告,可以使用R语言中的Shiny包。Shiny是一个用于构建交互式Web应用程序的R包,可以让用户通过网页界面与...
    99+
    2024-03-07
    R语言
  • R语言矩阵的创建方法是什么
    这篇文章主要讲解了“R语言矩阵的创建方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“R语言矩阵的创建方法是什么”吧!矩阵的创建产生矩阵的函数dim(),matrix()R软件的实现:...
    99+
    2023-06-03
  • C语言栈的创建方式
    这篇文章主要讲解了“C语言栈的创建方式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言栈的创建方式”吧!目录栈的结构定义如下:栈的初始化如下:栈元素的输入接口:完整代码如下:运行结果如下...
    99+
    2023-06-20
  • R语言如何通过parallel包实现多线程运行方式
    这篇文章将为大家详细讲解有关R语言如何通过parallel包实现多线程运行方式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是R语言R语言是用于统计分析、绘图的语言和操作环境,属于GNU系统的一个自由...
    99+
    2023-06-14
  • GO语言创建钱包并遍历钱包(wallet)的实现代码
    基本知识 公钥加密算法使用的是成对的密钥:公钥和私钥,公钥可以公开,私钥不能被公开。比特币钱包实际上是一个密钥对,当你安装 一个钱包应用,或者是使用一个比特币客户端来生成一个新地址是...
    99+
    2024-04-02
  • R语言中常见的几种创建矩阵形式总结
    矩阵概述 R语言的实质实质上是与matlab差不多的,都是以矩阵为基础的 在R语言中,矩阵(matrix)是将数据按行和列组织数据的一种数据对象,相当于二维数组,可以用于描述二维的数...
    99+
    2024-04-02
  • R语言实现LASSO回归的方法
    Lasso回归又称为套索回归,是Robert Tibshirani于1996年提出的一种新的变量选择技术。Lasso是一种收缩估计方法,其基本思想是在回归系数的绝对值之和小于一个常数...
    99+
    2024-04-02
  • R语言可视化存储矢量图实现方式
    目录1. R 中自带的默认绘图1) PDF 格式2) EPS 格式2. ggplot 绘图1) PDF 格式2) EPS 格式之前写的博客中有提及过如何在 R 语言中绘制矢量图,然后...
    99+
    2024-04-02
  • C语言之实现栈的基础创建
    栈:是限定仅在表尾进行插入和删除操作的线性表! 栈的结构定义如下: typedef struct Stack { SLDataType *base;//栈底元素的地址 ...
    99+
    2024-04-02
  • C语言堆栈帧的介绍与创建方式
    本篇内容主要讲解“C语言堆栈帧的介绍与创建方式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言堆栈帧的介绍与创建方式”吧!什么是堆栈帧?    &nb...
    99+
    2023-06-20
  • R语言-实现提取包含某字符串的行变量
    已解决 用grep函数 A=read.table("clipboard",sep="/t",header=T) A[grep(pattern="/resource/activit...
    99+
    2024-04-02
  • R语言实现随机森林的方法示例
    目录随机森林算法介绍算法介绍:决策树生长步骤:投票过程:基本思想:随机森林的优点:缺点R语言实现随机森林模型搭建1:randomForest()函数用于构建随机森林模型2:impor...
    99+
    2024-04-02
  • 使用R语言实现自动文摘的方法
    目录准备工作文本预处理基于词频-逆文档频率(TF-IDF)的自动文摘计算TF-IDF值提取关键词生成摘要基于潜在语义分析(LSA)的自动文摘计算主题提取主题词生成摘要结论自动文摘(A...
    99+
    2023-05-20
    R语言自动文摘 R语言文摘
  • 怎么在R语言中实现验证及协方差的计算公式
    怎么在R语言中实现验证及协方差的计算公式?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。首先附上协方差公式:来设5个样本点:(3,9),(2,7),(4,12),(5,15)...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作