ho dati per diversi tessuti in questo modoCombina una funzione e ciclo for
tissueA tissueB tissueC
gene1 4.5 6.2 5.8
gene2 3.2 4.7 6.6
E voglio calcolare una statistica riassuntiva che è
x = Σ [1-log2(i,j)/log2(i,max)]/n-1
dove n è il numero di tessuti (qui è 3), (i, max) è il valore più alto per il gene i attraverso i n tessuti, (cioè per gene1 è 6.2).
Dal momento che ho a che fare questo calcolo per ogni tessuto per ogni gene (come la somma va da j per n, e j = 1) e quindi ottenere la somma di quel
ho scritto un ciclo for
tuttavia non sono sicuro di come applicare questo ciclo per ogni riga, normalmente vorrei scrivere una funzione e basta fare (applicare, 1, funzione (x)) ma non sono sicuro di come un ciclo for può essere trasformato in una funzione.
Per l'uscita prevista per gene1, per esempio, sarebbe
(1-log2(4.5)/log2(6.2))/2 + (1-log2(5.8)/log2(6.2))/2 =0.1060983
Si prega di aggiungere l'uscita prevista. – zx8754
Sicuro! Scusa, penso di aver avuto errori nelle parentesi nel mio ciclo originale, ma l'ho modificato. La risposta per ciascun gene dovrebbe variare da 0 a 1 – user3816990
'(1-log2 (4.5)/log2 (6.2))/2 + (1-log2 (5.8)/log2 (6.2))/2' è uguale a' 0.1060983' , come stai ottenendo '0.098'? – zx8754