我尝试使用Bio7数据流。可以从R获取数据帧并在Python脚本中使用。我尝试使用以下代码
import pandas as df
print("here we are")
df=RServeUtil.fromR("iris")
print(df)
但我在import
陈述中有误。
答案 0 :(得分:0)
您可能混合了一些东西:
您收到错误消息,因为您可能尚未安装熊猫。
顺便说一句,更常见的是导入pd
名称的熊猫:
import pandas as pd
代码中的名称df
是 dataframe 的通用名称,例如。 G。 pandas的DataFrame-您似乎试图将两种不同来源的代码组合在一起,一种用于熊猫,另一种用于Bio7。
答案 1 :(得分:0)
Bio7使用默认Jython,它不支持常规Python软件包,请参阅:
https://en.wikipedia.org/wiki/Jython
Jython在Java Virtual Maschine进程中运行,并且可以访问您使用Python语法使用的Bio7 Java API,但缺少许多强大的Python软件包的支持。
此外,还可以使用本地Python解释器在Bio7中执行Python脚本(控制台也支持访问)
当然,由于Bio7是基于Eclipse的,因此您可以使用Bio7 Update Manager安装更强大的通用Python和Jython编辑器(PyDev),请参阅:
https://marketplace.eclipse.org/content/pydev-python-ide-eclipse
Bio7还支持使用服务器桥(P4J:http://py4j.sourceforge.net/)传输到Python,但我认为在您的情况下 您还可以使用直接的R Python桥,例如,使用:
如果您更喜欢使用Python。
但是,这取决于您要执行的操作。也许单独使用Jython可以满足您的需求。
答案 2 :(得分:0)
我刚刚测试了一个有趣的解决方法,可以从Python调用Rserve(默认情况下Rserve不支持Jython)。
您可以将pyRserve(https://pythonhosted.org/pyRserve/intro.html#documentation)作为Python软件包安装。
在Bio7中,可以使用Rserve操作启动Rserve。但是,您也可以通过再次调用该操作来切换到本地R控制台(也可以在不使用可用控制台操作的Rserve的情况下单独启动)。
请注意,由于所有平台上Bio7中都有特殊的Rserve版本,到此为止,所有R工作区变量都将保留在本机R控制台中!
现在,我可以使用以下命令从R控制台(不是通过Bio7管理)启动Rserve:
run.Rserve()
最后,我可以将Python连接到Rserve并评估这样的脚本:
import pyRserve
conn = pyRserve.connect()
conn.eval("print(runif(100))")
#conn.close()
conn.shutdown()
在上面的示例中,我关闭了脚本中的Rserve,以便可以通过Bio7工具栏操作再次连接到Rserve。
通过这种简单的方法,我可以在Python中访问所有当前可用的R工作区数据(例如ImageJ数据等)或从Python发送数据 到R。
在Bio7中使用已安装的PyDev编辑器插件时:https://youtu.be/-kySAN9doXQ
在Python脚本的专用上下文菜单中使用“运行方式”操作。
还请注意,使用PyDev编辑器更改到Bio7控制台时(如有必要)以查看Bio7结果(请参阅控制台操作“显示选定的控制台”)!
R的变量可以在Python中分配,例如以下示例:
t=conn.eval("runif(100)")
print t