私は 1 つの列と同じ数の行を持つ tsv ファイルをすべて持っています。私は ggplot (stat_smooth) を使用してそれらをプロットしていstat_smooth
ますが、入力として提供されるファイルの数に基づいて、より多くの関数呼び出しを追加するという意味で、プログラムを柔軟にする必要があります。
入力の長さはから取得されlength(commandArgs(TRUE))
、データを次のように変数に格納しています
cov=data.frame(sapply(1:length(commandArgs(TRUE)),
function(i)read.csv(proteins[i],sep='\t',colClasses=c(NA,"NULL"))))
proteins<-commandArgs(TRUE)
ファイルはどこにあり、colnames
別のコードを使用して追加しています。
さて、問題はggplotに付属しています.ggplotをsmooth_line
呼び出して、提供された引数の数に応じてオンザフライで呼び出すにはどうすればよいですか。
私は何かをしようとしていた、
m=ggplot(cov,aes(seq,cov[,2]))
p=function(i){return(stat_smooth(aes(color=colnames(cov)[i])))}
m+p(1)+.....
a を使用しp
てコア ggplot プロット イニシエータにを追加しますが、それは意味がないようです。m
for loop
これにはもっと効率的な方法があるはずです。cov
アイデアは、次のようなデータを持つdata.frameの列に基づいて、呼び出しを構築することです
seq fileA fileB
1 8429.262 8606.623
2 8766.138 9066.361
3 9081.893 9456.915
4 9342.380 9784.373
5 9480.860 10067.121
6 9581.437 10312.253
誰かが何かを提案できますか?