与えられたディレクトリ内のすべてのファイルに対して、R(strandcode.txt)で書いた関数を反復しようとしています。Bashコマンドラインのファイルに対してR関数を実行する
strandcode.txtを以下に示します。これは、Chi Squaredテストを計算する簡単な関数です。
strand <- function(file){
data <- as.data.frame(read.table(file))
colnames(data) <- c('chr', 'pos', 'fwd', 'bkwd')
data$chi <- ((.5 - (data$fwd/(data$fwd + data$bkwd)))^2)/.5
keep <- data[data$chi < .823, ]
return(keep)
}
strand{$i}
私はRscriptを使用して、以下のコマンドでディレクトリ内のすべてのファイルを反復処理しています私のLinuxサーバ上でこれを実行しています。
for i in $(ls); do Rscript strandcode.txt >> strandout.txt; done
しかしこれは私にエラーを与えている エラー:予期しない「{」で「鎖{」 実行が
を停止し、私もstrandcodeのうちの最後の行を取って(次のコマンドラインを試してみました。 txt)
for i in $(ls); do Rscript strandcode.txt; Rscript strand{$i} >> strandout.txt; done
for i in $(ls); do Rscript strandcode.txt strand{$i} >> strandout.txt; done
両方ともエラーなしで出力され、出力ファイルには何も出力されません。
ご意見をいただければ幸いです。ありがとう!
'strand {$ i}'は適切なRコードではありません。あなたの '$ i'はスクリプトの中では見えませんので、あなたのスクリプトが知っているものに' $ i'としてbashが何を持っているのかを知る必要があります。これはhttp://stackoverflow.com/questions/2151212/how-can-i-read-command-line-parameters-from-an-r-scriptとリンクされたページhttp://stackoverflow.comの複製である可能性があります/ questions/2151212/r-scriptからのコマンドラインパラメータの読み取り/ 2151627#2151627、Dirkが彼の推薦を変更します。 – r2evans