के लिए मैं इतनाएक समारोह कम्बाइन और पाश
tissueA tissueB tissueC
gene1 4.5 6.2 5.8
gene2 3.2 4.7 6.6
की तरह अलग अलग ऊतकों के लिए डेटा है और मैं एक सारांश आंकड़े यह है कि
x = Σ [1-log2(i,j)/log2(i,max)]/n-1
जहां n ऊतकों की संख्या है (यहाँ गणना करना चाहते हैं यह 3 है), (i, max) एन ऊतकों में जीन के लिए उच्चतम मूल्य है, (यानी जीन 1 के लिए यह 6.2 है)।
मैं पाश
के लिए एक लिखा था के बाद से मैं हर जीन के लिए प्रत्येक ऊतक के लिए इस गणना करने के लिए (के रूप में योग n, और जे = 1 के लिए जे से चला जाता है) और फिर उसकी राशि प्राप्त की है
for (i in seq_along(x) {
my.max <- max(x[,i])
my.statistic <- (1-log2(x[,i]/log2[my.max])
my.sum <- sum(my.statistic)
my.answer <- my.sum/2 #(n-1=3-1=2)
लेकिन मुझे यकीन है कि कैसे प्रत्येक पंक्ति के लिए पाश के लिए यह लागू करने के लिए, आम तौर पर मैं एक समारोह लिखते थे नहीं कर रहा हूँ और बस है (लागू होते हैं, 1, समारोह (x)) लेकिन मुझे यकीन है कि कैसे पाश के लिए एक हो सकता है नहीं कर रहा हूँ एक समारोह में बदल गया।
gene1 के लिए उम्मीद उत्पादन के लिए, उदाहरण के लिए, यह होगा
(1-log2(4.5)/log2(6.2))/2 + (1-log2(5.8)/log2(6.2))/2 =0.1060983
की तुलना में तेज़ है, कृपया अपेक्षित आउटपुट जोड़ें। – zx8754
ज़रूर! क्षमा करें मुझे लगता है कि मेरे मूल में लूप के लिए मेरे ब्रैकेट में गलतियां थीं, लेकिन मैंने इसे बदल दिया। प्रत्येक जीन के लिए उत्तर 0 से 1 – user3816990
'(1-लॉग 2 (4.5)/लॉग 2 (6.2))/2 + (1-लॉग 2 (5.8)/लॉग 2 (6.2))/2' के बराबर होना चाहिए 0.1060 9 833 , आप '0.0 9 8' कैसे प्राप्त कर रहे हैं? – zx8754