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包相关推荐

  1. 使用R语言的正确姿势,R包干货奉献

    生物信息学习的正确姿势 NGS系列文章包括NGS基础.在线绘图.转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这).ChIP-seq分析 (ChIP-seq基本分析流程).单细胞 ...

  2. R语言图形编辑器GUI开发环境RStudio安装(Windows操作系统下、RStudio开发环境安装)

    R语言图形编辑器GUI开发环境RStudio安装(Windows操作系统下.RStudio开发环境安装) RStudio是R语言的集成开发环境(IDE),它是一个独立的开源项目,它将许多功能强大的编程 ...

  3. R语言中的管道操作——magrittr包

    R语言中的管道操作--magrittr包 一.项目环境 开发工具:RStudio R:3.5.2 相关包:magritter 二.数据准备以及问题阐述 这次要解决的问题是如何使用提取数据框中所有包含缺 ...

  4. 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)) ...

  5. R语言ggplot2可视化:使用dplyr包计算每个分组个数的比例(对计算获得的百分比进行近似,值保留整数部分)、使用ggplot2可视化条形图(bar plot)、并在条形图上添加百分比标签

    R语言ggplot2可视化:使用dplyr包计算每个分组个数的比例(对计算获得的百分比进行近似,值保留整数部分).使用ggplot2可视化条形图(bar plot).并在条形图上添加百分比标签 目录

  6. R语言ggplot2可视化:使用ggrepel包在线图(line plot)的尾端那个数据点添加文本标签(text label)

    R语言ggplot2可视化:使用ggrepel包在线图(line plot)的尾端那个数据点添加文本标签(text  label) 目录

  7. R语言ggplot2可视化:使用patchwork包绘制ggplot2可视化结果的组合图(自定义图像的嵌入关系)、使用patchwork包绘制ggplot2可视化结果的组合图(自定义组合形式)

    R语言ggplot2可视化:使用patchwork包绘制ggplot2可视化结果的组合图(自定义图像的嵌入关系).使用patchwork包绘制ggplot2可视化结果的组合图(自定义组合形式) 目录

  8. R语言ggplot2可视化:使用gganimate包和gapminder包为生成的动画文件gif设置尺寸、分辨率

    R语言ggplot2可视化:使用gganimate包和gapminder包为生成的动画文件gif设置尺寸.分辨率 目录

  9. R语言ggplot2可视化:使用pracma包的interp1函数对缺失值进行线性插值后进行可视化分析、用虚线标记进行数据填充的区域

    R语言ggplot2可视化:使用pracma包的interp1函数对缺失值进行线性插值后进行可视化分析.用虚线标记进行数据填充的区域 目录

最新文章

  1. html自动刷新倒计时,基于JavaScript实现自动更新倒计时效果
  2. Project: Individual Project - Word frequency program----11061192zmx
  3. EF Core 实现读写分离的最佳方案
  4. 从真实项目中抠出来的设计模式——第一篇:策略模式
  5. python 改变词典顺序_按词典顺序排列的功率集
  6. linux控制流程,Linux - Bash - 流程控制
  7. 产品经理的肾,是怎么坏的?
  8. Spring学习--实现 FactoryBean 接口在 Spring IOC 容器中配置 Bean
  9. 截取tomat指定时间的脚本
  10. java session机制_如何学习Session的机制使用
  11. iOS -- MBProgressHUB
  12. 【 Codeforces Round #395 (Div. 2) E】Timofey and remoduling【数学思维题 —— 等差/等比数列】
  13. 计算机组成与设计第五版课后答案ch04,数据结构第4章例题与答案
  14. 在线模拟装机大学计算机,模拟装机实验.doc
  15. “互联网+可视农业”模式有哪些?
  16. Centos7为yum设置代理
  17. 大数据的主要学习内容有哪些?
  18. 华为鸿蒙系统研发砸了多少钱,5000研发人员,打造生态系统砸10亿美元,为鸿蒙华为几乎不惜代价!...
  19. nessus漏洞报告英文翻译中文脚本
  20. Qt修改鼠标样式为自定义图标

热门文章

  1. android陀螺仪实现背景移动demo,基于HTML5陀螺仪实现移动动画效果
  2. android bilibili sd卡,移动bilibili缓存视频到SD卡
  3. 果糖SAAS开源社交电商小程序,全开源,无加密
  4. html导航栏怎么加点,点靓网页的10种导航菜单设计
  5. 抖音 Android 性能优化系列:Java 锁优化
  6. (三)Perl_列表与数组(元素访问、特殊索引$#、qw简写、列表赋值等)
  7. 【VPP】 VPP之DPO
  8. MySQL参数 之 innodb_buffer_pool_size
  9. 王者荣耀 微信登录 服务器找不到,王者荣耀微信无法登录是怎么回事 具体解决方法...
  10. 当地图与绘画结合,竟然能迸发出这样的精彩