我有兩個矩陣,一個是10x1雙矩陣,可以擴展爲任何用戶預設編號,例如。 100.R:根據另一個矩陣中的值計算矩陣中的百分比值
視圖(min_matrx)
V1
1 27
2 46
3 30
4 59
5 46
6 45
7 34
8 31
9 52
10 46
另一矩陣看起來像這樣,也有未示出更多的行:
視圖(main_matrx)
row.names sum_value
s17 45
s7469 213
s20984 24
s17309 214
s7432369 43
s221320984 12
s17556 34
s741269 11
s20132984 35
對於每一行名在main_matrx中我想計算一次值,該值超過main_matrx中的sum_value值出現在min_matrx中。然後我想將它除以min_matrx中的行數,並將該值作爲main_matrx中的新列添加。
例如,在s17的main_matrx的第1行中,min_matrx = 5次時值出現的次數大於45。
現在將5乘10行min_matrx => 5/10 = 0.5將是我想要作爲s17的main_matrx中新列的值。然後對行名稱中的所有s_id使用相同的公式。
到目前爲止,我還撥弄着:
for(s in 1:length(main_matrx)) {
new<-sum(main_matrx[s,]>min_CPRS_set)/length(min_matrx)
}
,我嘗試使用適用(),但我仍然沒有得到結果。
apply(main_matrx,1:length(main_matrx), function(x) sum(main_matrx>min_CPRS_set)/length(min_matrx)))
現在,我只是卡住了,因爲它不工作。我還是R新手,所以我的代碼效率不高。有什麼建議麼?
這很難遵循。你對'17','s7469'和'20984'有什麼期望? – 2013-04-06 19:57:30
我編輯了這個問題,使其更清晰。對於第17節,我預計0.5。對於每個s_id,公式應爲=(min_matrx中的#次值小於main_matrx中的sum_value)/ min_matrx中的行數。 – CadisEtRama 2013-04-06 20:16:34
適用於對矩陣的所有列或行進行操作。第二個參數是1或2。 – 2013-04-06 21:01:03