[英]How to assign values to a matrix based on the values of another matrix in R?
[英]R:Calculating percentage values across a matrix based on the values in another matrix
我有兩個矩陣,一個是10x1的雙矩陣,可以擴展為任何用戶預設的數字,例如。 100
查看(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中的每個行名稱,我要計算min_matrx中出現的值大於main_matrx中的sum_value的次數。 然后,我想將其除以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(),但仍然沒有得到結果。
apply(main_matrx,1:length(main_matrx), function(x) sum(main_matrx>min_CPRS_set)/length(min_matrx)))
現在,我被卡住了,因為它無法正常工作。 我對R還是很陌生,所以我的代碼並不是特別有效。 有什么建議么?
有很多方法可以解決這個問題。 這是我想到的一個(我想我理解您的追求;再次理解一個示例比單獨使用單詞要容易得多。將來,我會建議一個示例來解決文本問題。)
其中x是元素,y是向量
FUN <- function(x, y = min_matrix[, 1]) {
sum(y > x)/length(y)
}
main_matrx$new <- sapply(main_matrx[, 2], FUN)
## > main_matrx
## row.names sum_value new
## 1 s17 45 0.5
## 2 s7469 213 0.0
## 3 s20984 24 1.0
## 4 s17309 214 0.0
## 5 s7432369 43 0.6
## 6 s221320984 12 1.0
## 7 s17556 34 0.6
## 8 s741269 11 1.0
## 9 s20132984 35 0.6
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.