python打开一个软件并进行操作_在Python中运行程序(R)以执行操作(执行脚本)的问题...

我想从

python执行一个R脚本,理想情况下显示和保存结果.使用rpy2有点挣扎,所以我想我只是直接打电话给R.我有一种感觉,我需要使用像“os.system”或“subprocess.call”这样的东西,但我很难解读模块指南.

这是R脚本“MantelScript”,它使用特定的stat测试来一次比较两个距离矩阵(distmatA1和distmatB1).这在R中工作,虽然我还没有放入迭代位以便以成对的方式读取和比较一堆文件(我真的需要一些帮助,太btw!):

library(ade4)

M1<-read.table("C:\\pythonscripts\\distmatA1.csv", header = FALSE, sep = ",")

M2<-read.table("C:\\pythonscripts\\distmatB1.csv", header = FALSE, sep = ",")

mantel.rtest(dist(matrix(M1, 14, 14)), dist(matrix(M2, 14, 14)), nrepet = 999)

这是我的python脚本的相关位,它读取一些先前制定的列表并拉出矩阵以便通过此Mantel测试进行比较(它应从identityA中拉出第一个矩阵并依次将其与identityB中的每个矩阵进行比较,然后重复使用来自identityB等的第二个矩阵).我想保存这些文件,然后调用R程序来比较它们:

# windownA and windownB are lists containing ascending sequences of integers

# identityA and identityB are lists where each field is a distance matrix.

z = 0

v = 0

import subprocess

import os

for i in windownA:

M1 = identityA[i]

z += 1

filename = "C:/pythonscripts/distmatA"+str(z)+".csv"

file = csv.writer(open(filename, 'w'))

file.writerow(M1)

for j in windownB:

M2 = identityB[j]

v += 1

filename2 = "C:/pythonscripts/distmatB"+str(v)+".csv"

file = csv.writer(open(filename2, 'w'))

file.writerow(M2)

## result = os.system('R CMD BATCH C:/R/library/MantelScript.R') - maybe something like this??

## result = subprocess.call(['C:/R/library/MantelScript.txt']) - or maybe this??

print result

print ' '

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值