0

遺伝学パッケージの LD() 関数を使用して連鎖不平衡計算を実行しようとしています。知らない人のために、次のように書いてあります。

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

ここで、a と 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)

「行 'n'」が実際の有効なコードではないことはわかっています。他にどのように説明すればよいかわかりませんでした。

最後に、g1 と g2 を設定できたら、LD 計算を実行する予定です。

4

1 に答える 1

0

ジェームズが彼のコメントで述べているように、あなたが望むかもしれませんmapply。私はあなたのデータを持っていませんが、これはうまくいくはずです:

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

コミュニティ wiki の原因の回答は、私のコメントではなく基づいています。

于 2011-06-29T13:45:56.013 に答える