R、 命令行,写入文件失败

R、 命令行,写入文件失败,r,batch-file,cmd,rscript,R,Batch File,Cmd,Rscript,我正在尝试自动化(在Win7系统上)一个R脚本,从Bloomberg读取数据并将其写入文件,以便由另一个系统进行处理。我的代码在R gui中运行得非常好。所以我编写了一个批处理文件来调用这个.r文件,并将结果输出到script.out,如下所示。当我双击批处理文件时,一切都成功运行。当我计划一个任务来运行批处理文件时,R代码运行,从Bloomberg收集数据,但每次写入文件都失败 R码 library(quantmod) library(rJava) library(Rbbg) #Bloomb

我正在尝试自动化(在Win7系统上)一个R脚本,从Bloomberg读取数据并将其写入文件,以便由另一个系统进行处理。我的代码在R gui中运行得非常好。所以我编写了一个批处理文件来调用这个.r文件,并将结果输出到script.out,如下所示。当我双击批处理文件时,一切都成功运行。当我计划一个任务来运行批处理文件时,R代码运行,从Bloomberg收集数据,但每次写入文件都失败

R码

library(quantmod)
library(rJava)
library(Rbbg)

#Bloomberg connectivity
conn <- blpConnect()

#Initialize Java Virtual MAchine
.jinit(classpath="myClasses.jar", parameters="-Xmx512m")

setwd("C:/Users/abg/Skydrive/Documents/Bloomberg Historical Data 2013-07-30/data")
output_dir <- "W:/abg/Daily Forward Rates/"


results_df<- data.frame(Currency=character(), Spot=character(), sp_bid=numeric(), sp_ask=numeric(), 
                                TN=character(), tn_bid=numeric(), tn_ask=numeric(), 
                                SN=character(), sn_bid=numeric(), sn_ask=numeric(),stringsAsFactors=FALSE)



for(i in 1:length(list.files(pattern='*\\.csv')))
{
    currency <- substr(list.files(pattern='*\\.csv')[i],1,6)
    securities <- c(paste(currency, " Curncy", sep="")) 
    fields <- c("BID", "ASK", "TIME")
    bb_results<-bdp(conn, securities, fields)
    print(bb_results)

    results_df[i,1]<-currency
    results_df[i,2]<- "SPOT"
    results_df[i,3]<- bb_results$BID
    results_df[i,4]<- bb_results$ASK

}


results_df[is.na(results_df)]<-""

write.table(results_df, file = paste(output_dir, Sys.Date(), "_forward_rates.csv", sep=""), sep = ",", append=FALSE, row.names = FALSE, col.names=TRUE)
最后,这里是script.out文件末尾的语句,它似乎表明write.table命令失败

Error in file(file, ifelse(append, "a", "w")) : 
  cannot open the connection
Calls: write.table -> file
In addition: Warning message:
In file(file, ifelse(append, "a", "w")) :
  cannot open file 'W:/abg/Daily Forward Rates/2013-10-01_forward_rates.csv': No such file or directory
Execution halted
我尝试将文件写入本地驱动器而不是网络驱动器,结果相同


如有任何建议,将不胜感激

尝试以下操作,而不是使用
write.table
命令

f.nm <- paste0(output_dir, Sys.Date(), "_forward_rates.csv")

# break it down into finer steps
file.create(f.nm)
f <- file(f.nm, open="w") # or open="a" if appending

write.table(results_df, file = f, sep = ",", append=FALSE, row.names = FALSE, col.names=TRUE)

close(f)

f.nm最有可能是因为脚本没有写入权限?啊,等等……Win7。我不使用Windows7,但听起来好像任务是由“错误”的用户运行的。查看其属性以设置其运行的用户,您希望它是与“/Users/abg”(可能是您?)关联的用户正如社区很快指出的,这不是R或R批处理问题,而是Windows问题。通过将我的output_dir变量更改为以下内容:output_dir
f.nm <- paste0(output_dir, Sys.Date(), "_forward_rates.csv")

# break it down into finer steps
file.create(f.nm)
f <- file(f.nm, open="w") # or open="a" if appending

write.table(results_df, file = f, sep = ",", append=FALSE, row.names = FALSE, col.names=TRUE)

close(f)