R语言里调用C++
来源:互联网 发布:淘宝无线套餐链接转换 编辑:程序博客网 时间:2024/05/20 01:44
使用Rcpp可以很方便地在.r脚本里调用C++函数。软件环境:R2.15.3+RStudio 0.99+RTools30.exe + Rcpp
1.在R2.15.3上安装Rcpp
打开R —》点击工具栏是的【程序包】—》设置CRAN镜像—》选择“Chian(Xiamen)”,如图(1)、(2)所示:
点击【程序包】—》选择“Rcpp”–>OK,如图(3)、(4)所示:
2. 先在RStudio里设置R的版本为2.15.3,然后安装Rtools30.exe
打开RStudio,点击工具栏上的【Tools】—-》global options —》在【General】页面,点击“Change”,勾选“Choose a specific version of R”–>R2.15.3,如图(3)所示:
打开RSudio —》File —》New File –》 C++ File,这时会弹出”RTools没有安装“的提示,点击“是”,就自动下载RTools30,一直等它到Extra,也就是自解压安装完成,我们就会在目录C:\RBuildTools\3.0看到version.txt,如图(4)所示:
3. 新建一个主脚本文件: mfibR.R,一个次脚本文件: fib_R.R,一个c++文件:fibercpp.cpp,其代码分别如下:
//mfibR.R
#设置R的工作目录setwd("G:\\myProject\\RDoc\\Unit2\\rChap1")##加载.r文件source('fib_R.R')#fib_r(30)#加载cpp文件Rcpp::sourceCpp('fibcpp.cpp')#fib_cpp_1(3)system.time(fib_r(30))system.time(fib_cpp_1(30))
//fib_R.R
fib_r <- function(n){ if(n==1||n==2) return(1) return(fib_r(n-1)+fib_r(n-2))}
//fibcpp.cpp
#include <Rcpp.h>using namespace Rcpp;//注意每一个函数之前,都有加一个//[[Rcpp::export]]// [[Rcpp::export]]int fib_cpp_1(int n){ if(n==1||n==2) return 1; return fib_cpp_1(n-1)+fib_cpp_1(n-2);}
选中mfibR.R里的第10行、第11行,按Ctrl+Enter,得到如下结果:
RStudio0.99下载地址:
链接:http://pan.baidu.com/s/1o7dWc7w 密码:i43t
R-2.15.3 for windows下载地址:
链接:http://pan.baidu.com/s/1dEpdJrj 密码:4mbs
R-3.2.3 for windows下载地址:
链接:http://pan.baidu.com/s/1i3NRnj3 密码:h6p0
Rcpp0.12下载地址
链接:http://pan.baidu.com/s/1jGYE6Dw 密码:4er6
Rtools30与Rtools33下载地址:
链接:http://pan.baidu.com/s/1hrd2tNY 密码:ek1b
或者:http://download.csdn.net/detail/sanqima/9348359
1 0
- R语言里调用C++
- R调用C语言简单实例
- Java调用其他编程语言C、R
- 关于R语言里的调用类型(call)
- C语言里,main 函数中 r…
- c语言里如何调用汇编里的变量?
- JAVA调用R语言
- python调用R语言
- c#调用R语言
- JAVA调用R语言
- Python调用R语言
- java 调用R语言
- JAVA调用R语言
- Java调用R语言
- JAVA调用R语言
- C语言函数---R
- R语言-R调用C++程序
- php如何调用R语言
- win7 装redis
- 设计模式系列(十)适配器模式(Adapter Pattern)
- 链接器工具错误 LNK2019 C++primer5第十五章程序错误的解决
- poj 1276 Cash Machine 裸的多重背包 ★
- Asp.Net Mvc 使用WebUploader 多图片上传
- R语言里调用C++
- JS组件系列——Bootstrap寒冬暖身篇:弹出框和提示框效果以及代码展示
- HDU 2955 Robberies
- linux那些命令
- 键盘输入缓存的清理
- Python: 消除print的自动换行
- 《剑指offer》——二维数组中的查找
- 【查找算法】——顺序查找、折半查找、分块查找(索引查找)
- Light OJ 1377 - Blade and Sword (BFS)