首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行R脚本后将R对象传递给Python

运行R脚本后将R对象传递给Python
EN

Stack Overflow用户
提问于 2014-12-03 15:54:25
回答 1查看 1.3K关注 0票数 0

我有一个python脚本Test.py,它在下面运行一个R脚本Test.R

代码语言:javascript
复制
import subprocess
import pandas
import pyper


#Run Simple R Code and Print Output
proc = subprocess.Popen(['Path/To/Rscript.exe',
                         'Path/To/Test.R'],
                        stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = proc.communicate()
print stdout
print stderr

R脚本如下:

代码语言:javascript
复制
library("methods")
x <- c(1,2,3,4,5,6,7,8,9,10)
y <- c(2,4,6,8,10,12,14,16,18,20)
data <- data.frame(x,y)

我如何将R数据帧(或任何R对象)传递给Python?我很难让Rpy2在windows上工作,我看过这个链接使用PypeR,但是它在Python代码中使用了大量的内联R代码,我真的很想把这些代码保存在单独的文件中(或者这种做法被认为是可以接受的?)谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-04 14:42:59

我也经历过让Rpy2在mac上工作以及使用相同的方法通过子过程直接从python调用R的问题;我也同意保持文件分离有助于管理复杂性。

首先,将数据从R导出为.csv (同样是通过子进程调用脚本):

代码语言:javascript
复制
write.table(data, file = 'test.csv')

在此之后,您可以作为python大熊猫数据框架(熊猫)导入:

代码语言:javascript
复制
import pandas as pd
dat = pd.read_csv('test.csv')

dat
   row  x    y
   1    1    2
   2    2    4
   3    3    6
   4    4    8
   5    5    10
   6    6    12
   7    7    14
   8    8    16
   9    9    18
  10   10    20
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27276051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档