Ho una data.frame e voglio applicare quantile da quello di rendere i dati sembrare più semplice:Come applicare Quantile su un dataframe
> head(Quartile)
GSM1321374 GSM1321375 GSM1321376 GSM1321377 GSM1321378 GSM1321379
1415670_at 11.203302 11.374616 10.876187 11.23639 11.02051 10.926481
1415671_at 11.196427 11.492769 11.493717 11.01683 11.15016 11.576188
1415672_at 11.550974 11.267559 11.800991 11.57551 10.93359 11.222779
1415673_at 11.293390 10.978280 11.367316 10.45135 10.35822 10.234964
1415674_a_at 9.254073 10.572670 9.361991 11.26998 10.21125 10.245857
1415675_at 9.922985 9.228195 9.798156 10.02844 10.19928 9.749947
ho applicato seguente funzione e ha fatto il lavoro.
quantfun <- function(x) as.integer(cut(x, quantile(x, probs=0:4/4), include.lowest=TRUE))
a <- apply(Quartile,1,quantfun)
b <- t(a)
colnames(b) <- colnames(Quartile)
e l'uscita è:
> head(b)
GSM1321374 GSM1321375 GSM1321376 GSM1321377 GSM1321378 GSM1321379
1415670_at 3 4 1 4 2 1
1415671_at 2 3 4 1 1 4
1415672_at 3 2 4 4 1 1
1415673_at 4 3 4 2 1 1
1415674_a_at 1 4 1 4 2 3
1415675_at 3 1 2 4 4 1
ma il problema è che si applica quantile su ogni colonna separatamente e voglio uno quantile uniforme per tutta la data.frame.
> duration = Quartile$GSM1321374
> quantile(duration)
0% 25% 50% 75% 100%
9.254073 9.922985 11.120381 11.203302 11.550974
> duration = Quartile$GSM1321375
> quantile(duration)
0% 25% 50% 75% 100%
9.228195 10.572670 10.946407 11.267559 11.492769
Prova 'quartile [] <- matrice (quantfun (non elencati (quartile)), nrow (quartile))' Al posto della funzione di applicare . –
@Pierre Lafortune E come posso verificare la durata di quantile ..? – user3253470
Stai cercando 'quantile (unlist (Quartile))'? –