Я искал этот вопрос и нашел ответы на это, но никто из них, похоже, не работает. Это script, который я использую в python для запуска R script.
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 script (довольно просто!)
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)
}
Функция r script работает нормально, когда я использую source('MyrScript.r')
в командной строке r. Более того, когда я пытаюсь использовать точную команду, которую я передаю функции subprocess.call
(т.е. /usr/bin/Rscript --vanilla -e 'source("/pathto/MyrScript.r")'
) в моей командной строке, она работает find, я действительно не понимаю, в чем проблема.