r语言调用python_python3调用R语言干货
1. 安装库rpy2
1. 下载与本地对应python版本模块,pip install rpy2是安装不上的
下载地址是:http://www.lfd.uci.edu/~gohlke/pythonlibs/#rpy2 这是python下包的专用地址
需要下载版本和平台都相对应的whl包,我下的是rpy2-2.9.4-cp36-cp36m-win32.whl
pip install rpy2-2.9.4-cp36-cp36m-win32.whl安装即可。
2. 安装broom --》R语言的一个库--》与R脚本有关,可以忽略
install.packages('broom')
3. 写R脚本
library(broom)
test<-function() {#x <- c(1:1200000)
#y <- c(1:1200000)
x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131)
y<- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)
relation<- lm(y ~x)
data<-summary(relation)
data_dict<-c()
newData<-c(data)
data_dict["residuals"] <- newData["residuals"]
data_dict["coefficients"] = newData["coefficients"]
data_dict["aliased"] = newData["aliased"]
data_dict["sigma"] = newData["sigma"]
data_dict["df"] = newData["df"]
data_dict["r.squared"] = newData["r.squared"]
data_dict["adj.r.squared"] = newData["adj.r.squared"]
data_dict["fstatistic"] = newData["fstatistic"]
data_dict["cov.unscaled"] = newData["cov.unscaled"]
data_dict["p.value"] = c(broom::glance(data))["p.value"]return(data_dict)
}#result <- test()#print(result)
4. 写python脚本
报错: RuntimeError: R_USER not defined.
解决方案,各种搜索都是环境变量的问题,于是我各种加
还tm不行..........................................又懒得重启
stackflow找到答案
os模块的运用,直接看脚本
importos
os.environ['R_HOME'] = r'C:\Program Files\R\R-3.6.0'os.environ['R_USER'] = r'C:\python3.6.3\Lib\site-packages\rpy2' #path depe
importrpy2.robjects as robjects # ----------------------------------------------> 一定要注意这句,不能放到最上面,因为要先添加环境变量,才能找到这个rpy2。一定要注意
robjects.r.source(r'C:\code\r_test\test_one\test.R')
a= robjects.r('test()')print(type(a))#print(list(a))
from pandas importDataFrameprint(a[0])print(a[0][0])
5. python传值给R脚本,如何实现, 形参方法1
R脚本: 这个脚本的关键在于如何将list转换为c
library(broom)
test<-function(list_data) {#print(list_data)
#print(class(list_data))
#r语言list 转换成 vector: v = as.vector(unlist(你的list))
x = c(as.vector(unlist(list_data['x'])))
y= c(as.vector(unlist(list_data['y'])))
relation<- lm(y ~x)
data<-summary(relation)print(data)return(0)
}
python脚本
importos
os.environ['R_HOME'] = r'C:\Program Files\R\R-3.6.0'os.environ['R_USER'] = r'C:\python3.6.3\Lib\site-packages\rpy2' #path depe
from pandas importDataFrame as dfimportrpy2.robjects as robjectsimporttime
robjects.r.source(r'C:\code\r_test\test_one\test.R')
time1=time.time()y=robjects.ListVector({"x":[1, 2, 3],"y":[1, 2, 3], # 这里可以给float
})
a= robjects.r["test"](y)
6. python传值给R脚本,如何实现, 形参方法2:类似python的args
R语言脚本
library(broom)
test<-function(...) {
list_data<- list(...) #类似python的args,可以传递多个参数
print(list_data)print(class(list_data))
x= c(as.vector(unlist(list_data[1]))) #注意R是从1开始的
y = c(as.vector(unlist(list_data[2])))print(x)print(y)
relation<- lm(y ~x)
data<-summary(relation)print(data)return(0)
}
python语言
importos
os.environ['R_HOME'] = r'C:\Program Files\R\R-3.6.0'os.environ['R_USER'] = r'C:\python3.6.3\Lib\site-packages\rpy2' #path depe
from pandas importDataFrame as dfimportrpy2.robjects as robjectsimporttime
robjects.r.source(r'C:\code\r_test\test_one\test.R')
x = robjects.IntVector([151, 174, 138, 186, 128, 136, 179, 163, 152, 131])
y= robjects.IntVector([63, 81, 56, 91, 47, 57, 76, 72, 62, 48])
a= robjects.r["test"](x, y)
r语言调用python_python3调用R语言干货相关推荐
- java集成r语言_R语言- 实验报告 - 利用R语言脚本与Java相互调用
一.实训内容 利用R语言对Java项目程序进行调用,本实验包括利用R语言对java的.java文件进行编译和执行输出. 在Java中调用R语言程序.本实验通过eclipse编写Java程序的方式,调用 ...
- r语言中调用c 程序,如何在R程序包中调用C函数
程序包名称为pareto.这是.c文件中src目录:如何在R程序包中调用C函数 #include #include #include "Rinternals.h" #include ...
- r语言和python-Python和R语言的区别_Python与R的区别和联系
Python和R语言的区别_Python与R的区别和联系 可能问这个问题会很无脑,但是我还没有深入接触过Python,只是用过R语言.谁能帮我解答一下,这两者的主要区别呢?是否存在代替关系呢? 精彩解 ...
- python和r语言比较_Python和R语言之分析对比 - 数据分析
在Python中调用R或在R中调用Python,为什么是"和"而不是"或"? 在互联网中,关于"R和Python"的文章,排名前十的搜索结果 ...
- r语言 回归分析 分类变量_R语言 | 回归分析(二)
R语言 语言学与R语言的碰撞 Xu & Yang PhoneticSan 学习参考 Discovering Statistics Using R Statistics for Linguist ...
- java调用wvsc.exe_c语言 函数的调用方法
欢迎加入 编程爱好者 QQ群 群号 57616770 中都只有一个主函数main(), 但实用程序往往由多个函数组成.函数是C源程序的基本模块,通过对函数模块的调在第一章中已经介绍过,C源程序是由函数 ...
- R 语言怎么保存工作目录到当前路径_【R语言基础】01.R语言软件环境搭建及常用操作...
一.R语言简介 R语言是专业的统计分析软件,来自著名数据科学网站(http://www.kdnuggets.com/)发起的一个2019年统计分析和数据挖掘软件使用情况的调查结果: 表明R语言是该领域 ...
- 易语言 存储过程 mysql_在易语言中调用MS SQL SERVER数据库存储过程(Transact-SQL)方法总结...
作者:liigo 日期:2010/8/25 Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接 ...
- python r语言 数据分析_PythonR语言-将Python和R整合进一个数据分析流程
命令行脚本 通过Windows 或Linux终端环境命令行运行R和Python脚本类似.要运行的命令被分解成以下部分: 参数说明 ▲ 是可执行的命令 (R代码中是 Rscript, Python代码中 ...
最新文章
- DTCMS,手机网站访问跳转到DTCMS官网解决方法
- 记阿里的一次壮烈牺牲
- java包装类方法_Java包装类
- shell获取命令行结果指定列(指定列结果)
- bzoj 1604: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居(切比雪夫距离+multiset贪心+并查集)
- Windows下Ionic Android开发环境搭建
- 人脸方向学习(七):Face Recognition-CosFace 解读
- php$.ajax(),使用PHP的jQuery $.ajax()
- 阅历总结:运用IBM DB2数据库的详细事变
- java毕业设计——基于java+jsp+Tomcat的电子书下载系统设计与实现(毕业论文+程序源码)——电子书下载系统
- Emmagee源码学习
- Microsoft Edge浏览器设置编码方式
- mysql的yearweek 和 weekofyear函数
- 谷歌插件学习必备准备知识代码提示插件调试
- 有哪些电容笔值得推荐?值得买的电容笔测评
- 关于社区团购和菜场买菜的一点感想
- 域名批量查询 网站域名批量查询
- 2019HDU多校第一场1001 BLANK (DP)(HDU6578)
- 计算机控制键功能,电脑ctrl键的功能
- 如何使用OLED显示图片
热门文章
- 北交所开市工作准备就绪 定于2021年11月15日开市
- 寂寞了就去搞钱?俞敏洪举报“俞敏洪”:“搞钱论”没一句话是我说的
- 蔡崇信将担任阿里巴巴集团第一组董事
- 应届生开40万年薪?OPPO大手笔招揽芯片人才引热议
- 超56万5G用户重返4G:用户难以接受这两点
- 理想汽车已累计交付2万台 仅用时10个月
- 红魔5S将配备320Hz游戏肩键:让小白瞬间成为操控高手
- 疑似小米10超大杯入网:搭载骁龙865+/120Hz高刷屏加持
- 瑞幸咖啡退市成定局:董事长被要求辞职,新店却仍在扩张
- 王思聪旗下公司破产拍卖:13.8万成交、溢价超100倍