VS中使用QT调用R脚本

  一开始想直接把R编译成库然后调用R,后来查了n多资料,发现VS中是无法办到的,官方也给出了一句话,大概意思就是没可能在VS中使用R提供的C++接口,大概是涉及到了底层的ABI的原因,具体也不太清楚。

  于是就想到了直接采用新建文件然后写成.R脚本的方式来调用R,这种使用方式必须安装R,然后从程序内部调用RScript.exe以及相应脚本。

QFile Rfile("C:\\temp\\RScript\\heatmap.R");
            Rfile.open(QIODevice::WriteOnly);
            QTextStream RfileWrite(&Rfile);
            RfileWrite << "library(RColorBrewer)" << endl;
            RfileWrite << "library(gplots)" << endl;
            RfileWrite << "x = read.table(\"C:\\\\temp\\\\RData\\\\heatmap.dat\", header = TRUE, sep=\"\t\")" << endl;
            RfileWrite << "mat = data.matrix(x)" << endl;
            RfileWrite << "png(file = \"C:\\\\temp\\\\RPic\\\\heatmap.png\", bg = \"transparent\")" << endl;
            RfileWrite << "heatmap.2(mat, Rowv = TRUE, Colv = TRUE,  distfun = dist,hclustfun = hclust,\
xlab = \"X data\", ylab = \"Y data\",\
key = TRUE,\
keysize = 2,\
trace = \"none\",\
density.info = c(\"none\"),\
margins = c(5, 5),\
col = brewer.pal(10, \"PiYG\")\
)"<<endl;
            RfileWrite << "dev.off()" << endl;
            Rfile.flush();
            Rfile.close();
            //system("C:\\\"program files\"\\R\\R-3.1.2\\bin\\RScript D:\\drawtest.R");
            //system("RScript D:\\drawtest.R");
            ShellExecuteA(NULL, "open", "RScript.exe", "C:\\temp\\RScript\\heatmap.R", NULL, SW_HIDE);

转载于:https://www.cnblogs.com/yanqi0124/p/4099347.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值