2011-06-29 21 views
0

遺伝的パッケージのLD()関数を使用して連鎖不平衡計算を実行しようとしています。R LD関数を使用したTapplyの使用

g1=genotype(a) 
g2=genotype(b) 
LD(g1,g2) 

とbが、私は4列のデータフレームと多数の行を持っていると私は」という

は、与えられた文字で、次のように知らない人のために、それが書かれています2つの列のLDを見つけようとしています。上の例のdf $ col3とdf $ col4がaとbを表すと仮定して、計算を実行するにはどうすればよいですか?

forループ永遠にかかるだろうと私は、tapplyを使用して検討していた:

tapply(df$col3,df$col4,function) 

問題は、私は、彼らが唯一である特定の行については、以下を設定する方法を見つけ出すことができないということです:

g1=genotype(row "n", col3) 
g2=genotype(row "m", col4) 

"row 'n"は実際の有効なコードではありません。私はちょうどそれを記述する他の方法を知らなかった。最後に

は、私はジェームズが彼のコメントで述べたようあなたがmapplyをすることがG1とG2

+0

いくつかのサンプルデータを投稿してください。 LD機能はどこですか? –

+0

'tapply'はこの仕事のための間違ったツールです。' mapply'はもっと適切かもしれません。しかし、私はまだあなたが最終結果を期待するものは明確ではない。 – James

+0

最終的な結果は実際には数値的な答えになります(私はそれを別の列にするつもりだと付け加えています)。おかげさまで、私はそれを試してみましょう。 – Anon

答えて

0

を設定することができたら、LDの計算を実行することを計画します。私はあなたのデータを持っていないが、これは動作するはずです:

mapply(
    function(a, b) LD(genotype(a), genotype(b)), 
    a = df$col3, 
    b = df$col4 
) 

は、私はそれの原因の答えは私のコメントではない、に基づいており、コミュニティのwiki作りました。

関連する問題