文件错误(文件," rt")R参数

时间:2016-08-11 05:51:36

标签: r

我在RScript下方使用。

/usr/local/bin/R CMD BATCH --slave '--args 51102' coverage_db/src/main/scripts/R_ExonsPlots.R

R脚本如下

args<-commandArgs(TRUE)
gname = as.numeric(args[1])
sample_data = read.table(Sys.glob("/NGS_STORE/ARCHIVE2/Cov_InputBed_Repository/*gname*"),sep="\t",header=FALSE,stringsAsFactors=FALSE)
colnames(sample_data)=c("chr","start","end","gene","avg_depth")

错误

Error in file(file, "rt") : invalid 'description' argument 

没有&#34;参数&#34;它工作得很好 但无法得到错误

1 个答案:

答案 0 :(得分:0)

错误来自read.table,因为Sys.glob会返回多个文件名。在这种情况下,Sys.glob将返回一个字符向量,每个文件名对应一个通配符。最有可能的是,这个问题是由另一个问题触发的,其中gname的值实际上没有被使用,因为"/NGS_STORE/ARCHIVE2/Cov_InputBed_Repository/*gname*"只是一个字符串(字符)。解决这两个问题:

args<-commandArgs(TRUE)
gname = as.numeric(args[1])
files = Sys.glob(paste0("/NGS_STORE/ARCHIVE2/Cov_InputBed_Repository/*",gname,"*"))
if (!is.na(files[1])) {
  sample_data = data.frame()
  for (afile in files) {
      sample_data = rbind(sample_data, read.table(afile, sep="\t", header=FALSE,
                                                  stringsAsFactors=FALSE))
  }
  colnames(sample_data)=c("chr","start","end","gene","avg_depth")
}

在这里,我假设如果有多个文件满足glob,你想要按行组合它们(即它们具有相同的列数)。显然,你可以按列组合它们,忽略除第一个之外的所有等等。

请注意,如果glob没有匹配项,那么它将返回NA。这就是为什么我们需要在调用NA之前检查read.table。否则,您将收到read.table错误Error in file(file, "rt") : cannot open the connection