所以我正在研究一个简单的python代码来运行一个简单的R脚本。 R脚本只有大约6行,但使用“pracma”包。在python中使用subprocesses模块,它运行脚本,但具有典型的“库中的错误(pracma):没有名为'pracma'的包”。我只是在寻找一个简单的解决方案,能够运行安装了非基础软件包的R脚本。我知道你可以用rpy2以某种方式做到这一点,但我不能用pip来安装,我也在使用Anaconda3。
总而言之,我只是喜欢一个运行R脚本的简单包,其中安装了包。任何帮助将不胜感激。
这是我的Python代码的相关部分:
sp.run('Rscript Hausdorff.R', shell=True)
bFile = open("HausdorffData/hausdorff.txt", "r")
result = bFile.read()
bFile.close()
hausdorff_dist = float(result)
return hausdorff_dist
这是我的R脚本:
library(pracma)
setwd('HausdorffData')
PointsA <- as.matrix(read.table("HFileA.txt", header = FALSE))
PointsB <- as.matrix(read.table("HFileB.txt", header = FALSE))
H = hausdorff_dist(PointsA, PointsB)
write(H, file = "hausdorff.txt",ncolumns = 1, append = FALSE)
这会产生以下错误:
Error in library(pracma) : there is no package called 'pracma'
Execution halted
答案 0 :(得分:0)
感谢@Dilettant:
即使R在没有这个的情况下似乎单独运行脚本,当从python这样的程序运行R脚本时,我们需要确保脚本知道我们的库所在的路径。这是通过将此行添加到开头来实现的。代码:
.libPaths(dir\to\package)
如果代码中有任何其他涉及更改工作目录的行,则更改库路径不会影响这些行。