1
* apply関数は、データ処理時にループするよりも効率的な方法ですが、1つの定期的な状況ではそうするのが苦労しています。すなわちcellValue(正規化した値で6:私は単に指定された列のための2を各セルの値を置き換えたい...「myTNorm」このdata.frameためループの問題と適用
> str(myTNorm)
'data.frame': 4631 obs. of 12 variables:
$ nc101_code: chr "NC101_00003" "NC101_00004" "NC101_00005" "NC101_00006" ...
$ D2_01 : num 5.67e-04 5.17e-05 2.50e-04 8.79e-04 8.61e-06 ...
$ D2_02 : num 1.83e-04 1.26e-05 3.35e-04 5.05e-04 1.89e-05 ...
を
:この単純な例を見てみましょう/ sum(列))。
これをうまくやるためにいくつかの関数で* applyを使う良い方法があるはずですが、forループとしてしか使えないような気がします。誰かが適切な構文を共有してください!
for (i in 2:6)
{
myTNorm[, i] = myTNorm[, i]/sum(myTNorm[, i])
}
ありがとうございます!
あなたがループ対の記事を見て回る*質問を適用した場合、あなたはコメントや*メソッドを適用することを示しても、完全な例の多くを見ることができます常にため 'よりも良いではありません'ループ。あなたの質問のために、 'myTNorm [、2:6] --application(2:6、function(i)i/sum(i))はおそらく標準*適用ソリューションです。 – lmo
@Imo 2番目の部分は 'lapply(myTNorm [、2:6]、...)' – Shape
@Shapeでなければならないと思います。それをキャッチするためにありがとう。 – lmo