我搜索了这个问题并找到了一些答案,但它们似乎都不起作用。这是我在 python 中用来运行我的 R 脚本的脚本。
import subprocess
retcode = subprocess.call("/usr/bin/Rscript --vanilla -e 'source(\"/pathto/MyrScript.r\")'", shell=True)
我得到这个错误:
Error in read.table(file = file, header = header, sep = sep, quote = quote, :
no lines available in input
Calls: source ... withVisible -> eval -> eval -> read.csv -> read.table
Execution halted
这是我的 R 脚本的内容(很简单!)
data = read.csv('features.csv')
data1 = read.csv("BagofWords.csv")
merged = merge(data,data1)
write.table(merged, "merged.csv",quote=FALSE,sep=",",row.names=FALSE)
for (i in 1:length(merged$fileName))
{
fileConn<-file(paste("output/",toString(merged$fileName[i]),".txt",sep=""))
writeLines((toString(merged$BagofWord[i])),fileConn)
close(fileConn)
}
当我source('MyrScript.r')
在 r 命令行中使用时,r 脚本工作正常。此外,当我尝试使用我在命令行中传递给subprocess.call
函数(即/usr/bin/Rscript --vanilla -e 'source("/pathto/MyrScript.r")'
)的确切命令时,它可以找到,我真的不明白问题出在哪里。