Ich habe einen Datenrahmen mit der Spalte 1, die das Gen ist und alle anderen Spalten Genausdruckdaten für dieses Gen unter verschiedenen Bedingungen sind. Ich möchte Gen für Gen gehen und alle Expressionswerte durch den Medianwert für dieses Gen teilen. Ich habe die Mediane in einem Datenrahmen namens s.med.df.Schleife durch Reihe über Teilmenge der Spalten
Ich versuche R zu lenken, um alle Expressionsspalten (2: n), aber nicht die erste Spalte durch den Medianwert für jedes Gen zu teilen. Ich bin neu in R, aber das Skript, das ich so weit habe, wie folgt:
Con1 <- c(5088.77, 274.62, 251.97, 122.21)
Con2 <- c(4382.59, 288.55, 208.12, 171.93)
Con3 <- c(4732.81, 417.43, 305.58, 132.93)
Solid.df <- data.frame(Gene = c("A", "B", "C", "D"), Con1=Con1, Con2=Con2, Con3=Con3)
Gene Con1 Con2 Con3
A 5088.77 4382.59 4732.81
B 274.62 288.55 417.43
C 251.97 208.12 305.58
D 122.21 171.93 132.93
n <- ncol(Solid.df)
genes = levels(s.med.df$Gene)
Solid.mt.df = Solid.df
for (i in 1:length(genes)) {
gene = genes[i]
Solid.mt.df[2:n][Solid.mt.df$Gene == gene] = Solid.mt.df[2:n][Solid.mt.df$Gene == gene]/s.med.df$Medians[i]
print(gene)
}
Vielen Dank im Voraus
Ihre Daten zeigen, das Problem zu reproduzieren würde helfen. Sie können auch eine der 'Apply'-Funktionen verwenden, um die Berechnungen zu beschleunigen. – epo3