私はメジャーがCAGで、カラムA01、A02などはクロスカウントの頻度テーブルを持っています。すなわち13個のCAGの6485個のCAG14個の35個のカウントを含む。 各行のCAGがモードCAG値以上であれば、各列の値を合計したい。そして、それをA01の合計で割ります。これは、モードに等しいかそれ以上の値の割合を私に提供します。 私はそれを1つの列に対して機能させることができましたが、各列に関連するモードを使用して、各列に対して実行したいと思います。私は助けていただければ幸いです!複数の変数を持つlapply()を使用
data <- data.frame(CAG = c(13, 14, 15, 17),
A01 = c(6485,35,132, 12),
A02 = c(0,42,56, 4))
mode <- data$CAG[data$A01 == max(data$A01)]
B <- lapply(data[, 2:ncol(data)], function(x) {
sum(x[data$CAG >= mode])
})
prop <- B/sum(data$A01)
そのままのコードは実行されません。 1つの列でどのように動作するかを示すはずですか?それとも、これは複数の列であなたの試みですか?私はそれが1つの列に対して正しいことを示唆していますが、モードが常にA01(コードの機能)であるか、各列に対して再計算する必要があるかどうかはわかりません( – Aaron
) B < - 合計(データ$ A01 [データ$ CAG> =モード[1:1]] 小文字< - B/sum(データ$ A01) – Mike