2016-08-11 37 views
0

我正在使用下面的RScript。文件(文件,「rt」)R參數錯誤

/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 

它好工作沒有 「論據」 但不能得到什麼錯誤是

+0

你只是想了解'粘貼' – Dason

+0

我不確定粘貼是什麼。我是R編程新手。想要根據「args」Glob文件讀取表格。 – Kiran

+0

嘗試打印'gname'的值。我認爲你必須在調用這個錯誤的'gname'中獲得多個值。還有一個問題,爲什麼你需要通過'--args 51102'只是51102不行。無論如何你在下面做'as.numeric'。 – abhiieor

回答

0

從錯誤結果read.table,因爲返回多個文件名。在這種情況下,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沒有匹配項,則將返回NA。這就是爲什麼我們在致電read.table之前需要檢查NA。否則,您將收到read.table錯誤Error in file(file, "rt") : cannot open the connection