C++与R交互
来源:互联网 发布:网络印刷电商平台 编辑:程序博客网 时间:2024/05/21 19:19
C++与R语言的交互,使用RInside包
下面记录C++调用R数据测试(主要参考RInside中附带的examples):
#include <iostream>#include <vector>#include <RInside.h>using namespace std;int main(int argc,char* argv[]){ RInside R(argc,argv);//创建一个R环境 string cmdStr;//R命令行变量 cout << "******* test R basic data type *******" << endl; cmdStr = "m <- 1.23"; double d1 = Rcpp::as<double>(R.parseEval(cmdStr));//将R命令结果解析赋值给d1 cout << "d1 = " << d1 << endl; cmdStr = "str <- \"Hello World!\""; string str = Rcpp::as<string>(R.parseEval(cmdStr));//将R命令结果解析赋值给str cout << "str = " << str << endl; cmdStr = "b <- FALSE"; bool b = Rcpp::as<bool>(R.parseEval(cmdStr)); cout << boolalpha << "b = " << b << endl; cout << "******* test R vector *******" << endl; cmdStr = "M <- c(1.0*1:6)"; vector<double> d2Vec = Rcpp::as< vector<double> >(R.parseEval(cmdStr));//将R命令向量赋值转换到C++的vector中 cout << "d2Vec[0] = " << d2Vec[0] << endl; cout << "d2Vec[1] = " << d2Vec[1] << endl; cout << "d2Vec[2] = " << d2Vec[2] << endl; cout << "d2Vec[3] = " << d2Vec[3] << endl; cout << "d2Vec[4] = " << d2Vec[4] << endl; cout << "d2Vec[5] = " << d2Vec[5] << endl; cout << "******* test R matrix *******" << endl; cmdStr = "M <- matrix(1:6,2,3)";//创建矩阵 vector<double> d3Vev = Rcpp::as< vector<double> >(R.parseEval(cmdStr)); cout << "d3Vev[0] = " << d3Vev[0] << endl; cout << "d3Vev[3] = " << d3Vev[3] << endl; cout << "d3Vev[5] = " << d3Vev[5] << endl; cout << "******* test R list *******" << endl; cmdStr = "lst <- list(name = \"Fred\",wife = \"Mary\",no.child = 3,child.ages = c(12,15,17))";//创建列表数据 Rcpp::List myList= R.parseEval(cmdStr); cout << "myList[\"name\"] = " << Rcpp::as<string>(myList["name"]) << endl; cout << "myList[\"wife\"] = " << Rcpp::as<string>(myList["wife"]) << endl; cout << "myList[\"no.child\"] = " << Rcpp::as<int>(myList["no.child"]) << endl; Rcpp::IntegerVector ageIntVec = Rcpp::as<Rcpp::IntegerVector>(myList["child.ages"]); cout << "ageIntVec[0] = " << ageIntVec[0] << endl; cout << "ageIntVec[1] = " << ageIntVec[1] << endl; cout << "ageIntVec[2] = " << ageIntVec[2] << endl; return 0;}
0 0
- C++与R交互
- R语言-与外部交互
- 安装 statconn 使R与c#交互
- Lua 与C交互
- Lua 与 C 交互
- Lua 与C交互
- Lua 与C交互
- Lua 与C交互
- Lua 与 C 交互
- lua与c交互
- C与lua交互
- Lua与C交互
- lua与c交互
- Java 与 R 交互--Java调用R函数-Rserver方式
- java与c的交互
- Objective-c与javascript交互
- Objective-c与JS交互
- Objective-c与javascript交互
- 10个优秀的 HTML5 & CSS3 下拉菜单制作教程
- leetcode第一刷_Merge Intervals
- Linux学习记录
- Atlas源码学习(四)
- 恒天云技术分享系列4 – OpenStack网络攻击与防御
- C++与R交互
- [C#]Log记录相关对应类
- Linux下的压缩解压缩命令详解
- EditText getText()判断输入为空
- HDU1556 Color the ball (树状数组)
- [C++]关于i++和++i的学习
- 运行R脚本(转)
- qooxdoo通用javascript框架手册(二)
- SDWebImage异步加载图片及缓存的管理与清理