-4

Rライブラリの関数( "myfunction")を次のように使用しています。

 myfunction(obj1, obj2, obj3, c("Name1", "Name2"))

ここで、「Name1」と「Name2」は2つの遺伝子名です。この2つの遺伝子に関する情報を取得する代わりに、1000列100行(100行は100遺伝子名)のファイルに保存されている他の多くの遺伝子に関する情報を取得したいと思います。

つまり、私のファイルの名前がfl1000だとします。各列について、次のコードが必要です。

myfunction(obj1, obj2, obj3, fl1000[,1])
myfunction(obj1, obj2, obj3, fl1000[,2])
myfunction(obj1, obj2, obj3, fl1000[,3])
....
myfunction(obj1, obj2, obj3, fl1000[,1000])

手動で行うことは不可能なので、これをよりコンパクトで高速な方法で行うにはどうすればよいでしょうか。

4

1 に答える 1

1

関数には、obj1、obj2、obj3の4つの引数と、2つの名前のベクトルのように見える名前のない引数があります。これらの最初の3つのオブジェクトが何であるかは明確ではありません-それらはベクトル、単一の要素、または何ですか?

したがって、最初の問題は、データの長方形から1つの列でこの種の関数を実行できるかどうかにあるようです。その長方形にapplyを使用して機能させるには、100個の要素からなる単一のベクトルを入力として受け取る関数が必要です。Clearyl myfunction()は、現在のような関数ではありません。ただし、そのベクトルをobj1などとして入力でき、他のものをobj2とobj3として指定するだけでよい場合は、関数を調整して機能するようにするのは簡単です。しかし、私たちがあなたが何をしているのかについてより多くの考えを持っていない限り、私たちはこれ以上助けることができませんでした。

編集(質問の編集後)

関数はName1とName2のベクトルを必要としているように見え、100個の値(2つだけではない)を含む行を指定したいので、この質問はまだ私にはまったく意味がありません。

しかし、それはさておき、おそらくあなたは望むでしょう:

apply(fl1000, 2, function(x){myfunction(obj1, obj2, obj3, x)})
于 2013-01-10T18:51:56.803 に答える