Ich habe Daten für verschiedene Gewebe wie soeine Funktion kombinieren und für Schleife
tissueA tissueB tissueC
gene1 4.5 6.2 5.8
gene2 3.2 4.7 6.6
Und ich möchte eine Auswertungsstatistik berechnen, die
x = Σ [1-log2(i,j)/log2(i,max)]/n-1
ist, wobei n die Anzahl von Geweben (hier es ist 3), (i, max) ist der höchste Wert für das Gen i über die n Gewebe (dh für Gen1 ist es 6,2).
Da ich für jedes Gewebe, diese Berechnung zu tun haben, für jedes Gen (als die Summe aus j bis n geht, und j = 1) und erhalten dann die Summe dieser
habe ich eine for-Schleife
aber ich bin mir nicht sicher, wie man diese for-Schleife für jede Zeile anwenden würde, normalerweise würde ich eine Funktion schreiben und tun (apply, 1, function (x)), aber ich bin mir nicht sicher, wie eine for-Schleife sein kann in eine Funktion verwandelt.
Für erwartete Ausgabe für gene1 zum Beispiel wäre es
, dies(1-log2(4.5)/log2(6.2))/2 + (1-log2(5.8)/log2(6.2))/2 =0.1060983
Bitte die erwartete Ausgabe hinzufügen. – zx8754
Sicher! Tut mir leid, ich habe Fehler in meinen Klammern in meiner ursprünglichen for-Schleife, aber ich habe das geändert. Die Antwort für jedes Gen sollte im Bereich von 0 bis 1 – user3816990
liegen (1-log2 (4,5)/log2 (6,2))/2 + (1-log2 (5,8)/log2 (6,2))/2 'ist gleich "0,1060983" , wie bekommst du '0.098'? – zx8754