Ich habe einen Datensatz, ike aussieht: für jeden target_id (~ 12000 target_id über 10 sample_id), so habe ichtapply Mit dem Mittelwert zu berechnen, basierend auf Spaltennamen
sample_id target_id tpm
1 SRR3884840X (A)n 0.00000
2 SRR3884840X (AC)n 0.00000
3 SRR3884840X (AG)n 0.00000
4 SRR3884840X (AT)n 15.54990
5 SRR3884840X (C)n 3.10997
6 SRR3884840X (CAA)n 6.21995
27357 SRR3884841X (A)n 0.00000e+00
27358 SRR3884841X (AC)n 0.00000e+00
27359 SRR3884841X (AG)n 0.00000e+00
27360 SRR3884841X (AT)n 0.00000e+00
27361 SRR3884841X (C)n 1. 76941e+01
27362 SRR3884841X (CAA)n 3.53882e+01
1094236 SRR3884878C comp78901_c0_seq3_1 916
1094237 SRR3884878C comp85230_c0_seq1_1 1002
1094238 SRR3884878C comp56944_c0_seq1_1 2285
example data:
> dput(droplevels(head(teX,15)))
structure(list(sample_id = structure(c(1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "SRR3884840X", class
"factor"),
target_id = structure(1:15, .Label = c("(A)n", "(AC)n", "(AG)n",
"(AT)n", "(C)n", "(CAA)n", "(CAAA)n", "(CAAAA)n", "(CAAAAA)n",
"(CCA)n", "(CCCCA)n", "(CCCCAA)n", "(CCCCCA)n", "(CCCGAA)n",
"(CCCTAA)n"), class = "factor"), tpm = c(0, 0, 0, 15.5499,
3.10997, 6.21995, 43.5396, 9.32992, 3.10997, 0, 0, 0, 0,
0, 0)), .Names = c("sample_id", "target_id", "tpm"), row.names = c(NA,
15L), class = "data.frame")
Ich mag Berechnung die durchschnittliche tpm lapply:
teXmean <- tapply(teX$target_id , teX$tpm, mean)
Dies gibt ein Array, das wie folgt aussieht:
0 2.25378e-10 3.21558e-10 4.49778e-10 4.5942e-10 4.63221e-10 5.5716e-10 5.63276e-10 5.90753e-10 6.20478e-10
NA NA NA NA NA NA NA NA NA NA
gibt es eine Möglichkeit sich zu erholen die target_id für jeden Durchschnitt oder bin ich hier komplett auf dem falschen Weg? Das Endziel wäre, den Durchschnitt für jede target_id zu berechnen, die Einträge mit target_id, die die Zeichenfolge "comp" enthalten, zu entfernen und dann eine Heatmap mit heatmap.2 zu erstellen.
Sie einen Tippfehler haben. Versuchen Sie, die Argumente umzukehren: 'tapply (teX $ tpm, teX $ target_id, mean)' oder stellen Sie explizit die Argumentnamen 'tapply (INDEX = teX $ target_id, X = teX $ tpm, FUN = Mittelwert)'. – lmo
Welpe. Das hat es behoben. – ZincFingers
Beachten Sie auch, dass "mean" 'NA' zurückgibt, wenn es irgendwelche fehlenden Werte gibt, also könnten Sie in der Zukunft expliziter sein und sagen' tapply (teX $ tpm, teX $ ziel_id, funktion (x) mean (x, na .rm = TRUE)) ' –