R语言之使用C++开发R包
R语言之使用C++开发R包
- 引言
- 使用Rcpp开发R包
引言
作为一名R的忠实用户,我深深的体会到了R作为利剑般的简捷实用性,但是随着统计模型越来越复杂,数据量越来越大,我也深切的感受到效率变成了这门语言的瓶颈!
于是乎有了Rcpp横空出世,Rcpp作为R与C++无缝衔接的接口,它让我们享受到了C++的高性能与R的简洁实用。
当然对于大多数的R用户都不会使用Rcpp,再加上R本身的小众、效率慢,这也可能导致了R本身发展的很慢!!!当然我们希望R以后做的越来越好。
下面我简单的赘述一下当时学习Rcpp的简单历程:
- Rcpp中简单操作数据各种数据结构数据类型的资料
- C++强大的矩阵库方便我们调用arma
- 为了熟练Rcpp,C++的背景知识我们肯定也要了解,比如数组、指针、OOP、STL等等。这也许就是限制统计人的一个地方吧!
关于Rcpp就说到这了,有问题的同学我们可以互相交流!!!
使用Rcpp开发R包
因为牵涉到并行计算,R作为底层写出的代码在并行计算中又较慢,所以想把Rcpp写出来的代码放到并行计算中实现高性能计算,但是Rcpp编译的函数无法传入到主流的并行计算包。我们必须把Rcpp编译的函数写到包里,创建新包,再加载包,这样Rcpp编译的函数就可以传到并行计算中了。
下面我来说一下创建包的方法:
library(Rcpp)
getwd()
setwd("E:/packages")
##因为包中的函数 depend RcppArmadillo
RcppArmadillo::RcppArmadillo.package.skeleton("jis")
setwd("E:/packages/jis")Rcpp::compileAttributes()
setwd("E:/packages")
library(devtools)
check("jis")
build("jis")
install.packages("E:/packages/jis_1.0.tar.gz",repos = NULL,type = "source")
最后欢迎有问题有想法的同学来交流!!!
R语言之使用C++开发R包相关推荐
- 使用R语言的正确姿势,R包干货奉献
生物信息学习的正确姿势 NGS系列文章包括NGS基础.在线绘图.转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这).ChIP-seq分析 (ChIP-seq基本分析流程).单细胞 ...
- R语言图形编辑器GUI开发环境RStudio安装(Windows操作系统下、RStudio开发环境安装)
R语言图形编辑器GUI开发环境RStudio安装(Windows操作系统下.RStudio开发环境安装) RStudio是R语言的集成开发环境(IDE),它是一个独立的开源项目,它将许多功能强大的编程 ...
- R语言中的管道操作——magrittr包
R语言中的管道操作--magrittr包 一.项目环境 开发工具:RStudio R:3.5.2 相关包:magritter 二.数据准备以及问题阐述 这次要解决的问题是如何使用提取数据框中所有包含缺 ...
- R语言ggplot2可视化:使用ggfortyify包中的autoplot函数自动可视化时间序列数据(Time Series Plot From a Time Series Object (ts))
R语言ggplot2可视化:使用ggfortyify包中的autoplot函数自动可视化时间序列数据(Time Series Plot From a Time Series Object (ts)) ...
- R语言ggplot2可视化:使用dplyr包计算每个分组个数的比例(对计算获得的百分比进行近似,值保留整数部分)、使用ggplot2可视化条形图(bar plot)、并在条形图上添加百分比标签
R语言ggplot2可视化:使用dplyr包计算每个分组个数的比例(对计算获得的百分比进行近似,值保留整数部分).使用ggplot2可视化条形图(bar plot).并在条形图上添加百分比标签 目录
- R语言ggplot2可视化:使用ggrepel包在线图(line plot)的尾端那个数据点添加文本标签(text label)
R语言ggplot2可视化:使用ggrepel包在线图(line plot)的尾端那个数据点添加文本标签(text label) 目录
- R语言ggplot2可视化:使用patchwork包绘制ggplot2可视化结果的组合图(自定义图像的嵌入关系)、使用patchwork包绘制ggplot2可视化结果的组合图(自定义组合形式)
R语言ggplot2可视化:使用patchwork包绘制ggplot2可视化结果的组合图(自定义图像的嵌入关系).使用patchwork包绘制ggplot2可视化结果的组合图(自定义组合形式) 目录
- R语言ggplot2可视化:使用gganimate包和gapminder包为生成的动画文件gif设置尺寸、分辨率
R语言ggplot2可视化:使用gganimate包和gapminder包为生成的动画文件gif设置尺寸.分辨率 目录
- R语言ggplot2可视化:使用pracma包的interp1函数对缺失值进行线性插值后进行可视化分析、用虚线标记进行数据填充的区域
R语言ggplot2可视化:使用pracma包的interp1函数对缺失值进行线性插值后进行可视化分析.用虚线标记进行数据填充的区域 目录
最新文章
- html自动刷新倒计时,基于JavaScript实现自动更新倒计时效果
- Project: Individual Project - Word frequency program----11061192zmx
- EF Core 实现读写分离的最佳方案
- 从真实项目中抠出来的设计模式——第一篇:策略模式
- python 改变词典顺序_按词典顺序排列的功率集
- linux控制流程,Linux - Bash - 流程控制
- 产品经理的肾,是怎么坏的?
- Spring学习--实现 FactoryBean 接口在 Spring IOC 容器中配置 Bean
- 截取tomat指定时间的脚本
- java session机制_如何学习Session的机制使用
- iOS -- MBProgressHUB
- 【 Codeforces Round #395 (Div. 2) E】Timofey and remoduling【数学思维题 —— 等差/等比数列】
- 计算机组成与设计第五版课后答案ch04,数据结构第4章例题与答案
- 在线模拟装机大学计算机,模拟装机实验.doc
- “互联网+可视农业”模式有哪些?
- Centos7为yum设置代理
- 大数据的主要学习内容有哪些?
- 华为鸿蒙系统研发砸了多少钱,5000研发人员,打造生态系统砸10亿美元,为鸿蒙华为几乎不惜代价!...
- nessus漏洞报告英文翻译中文脚本
- Qt修改鼠标样式为自定义图标
热门文章
- android陀螺仪实现背景移动demo,基于HTML5陀螺仪实现移动动画效果
- android bilibili sd卡,移动bilibili缓存视频到SD卡
- 果糖SAAS开源社交电商小程序,全开源,无加密
- html导航栏怎么加点,点靓网页的10种导航菜单设计
- 抖音 Android 性能优化系列:Java 锁优化
- (三)Perl_列表与数组(元素访问、特殊索引$#、qw简写、列表赋值等)
- 【VPP】 VPP之DPO
- MySQL参数 之 innodb_buffer_pool_size
- 王者荣耀 微信登录 服务器找不到,王者荣耀微信无法登录是怎么回事 具体解决方法...
- 当地图与绘画结合,竟然能迸发出这样的精彩