Volevo creare un plotter in cui le barre fossero ordinate per altezza anziché in ordine alfabetico per categoria. Questo ha funzionato bene quando l'unico pacchetto che ho caricato era ggplot2. Tuttavia, quando ho caricato alcuni altri pacchetti e ho eseguito lo stesso codice che ha creato, ordinato e tracciato il mio frame di dati, le barre sono state ripristinate in ordine alfabetico di nuovo.Il fattore di riordino dà risultati diversi, a seconda dei pacchetti caricati
Ho controllato il data frame ogni volta utilizzando str()
e si è scoperto che gli attributi del frame di dati erano ora diversi, anche se avrei eseguito lo stesso codice ogni volta.
Il mio codice e l'output sono elencati di seguito. Qualcuno può spiegare il diverso comportamento? Perché il caricamento di alcuni pacchetti apparentemente non correlati (non correlati nel senso che nessuna delle funzioni che sto utilizzando sembra essere mascherata dai pacchetti appena caricati) cambia il risultato dell'esecuzione della funzione transform()
?
Caso 1: Appena ggplot2 caricato
library(ggplot2)
group = c("C","F","D","B","A","E")
num = c(12,11,7,7,2,1)
data = data.frame(group,num)
data1 = transform(data, group=reorder(group,-num))
> str(data1)
'data.frame': 6 obs. of 2 variables:
$ group: Factor w/ 6 levels "C","F","B","D",..: 1 2 4 3 5 6
..- attr(*, "scores")= num [1:6(1d)] -2 -7 -12 -7 -1 -11
.. ..- attr(*, "dimnames")=List of 1
.. .. ..$ : chr "A" "B" "C" "D" ...
$ num : num 12 11 7 7 2 1
Caso 2: Caricare diversi più colli, quindi eseguire lo stesso codice
library(plyr)
library(xtable)
library(Hmisc)
library(gmodels)
library(reshape2)
library(vcd)
library(lattice)
group = c("C","F","D","B","A","E")
num = c(12,11,7,7,2,1)
data = data.frame(group,num)
data1 = transform(data, group=reorder(group,-num))
> str(data1)
'data.frame': 6 obs. of 2 variables:
$ group: Factor w/ 6 levels "A","B","C","D",..: 3 6 4 2 1 5
$ num : num 12 11 7 7 2 1
UPDATE: SessionInfo()
cassa 1: Ran sessionInfo() dopo aver caricato ggplot2
> sessionInfo()
R version 2.15.0 (2012-03-30)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
locale:
[1] C/en_US.UTF-8/C/C/C/C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] ggplot2_0.9.1
loaded via a namespace (and not attached):
[1] MASS_7.3-18 RColorBrewer_1.0-5 colorspace_1.1-1 dichromat_1.2-4 digest_0.5.2 grid_2.15.0
[7] labeling_0.1 memoise_0.1 munsell_0.3 plyr_1.7.1 proto_0.3-9.2 reshape2_1.2.1
[13] scales_0.2.1 stringr_0.6 tools_2.15.0
Caso 2: Ran sessionInfo() dopo il caricamento dei pacchetti aggiuntivi
> sessionInfo()
R version 2.15.0 (2012-03-30)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
locale:
[1] C/en_US.UTF-8/C/C/C/C
attached base packages:
[1] grid splines stats graphics grDevices utils datasets methods base
other attached packages:
[1] lattice_0.20-6 vcd_1.2-13 colorspace_1.1-1 MASS_7.3-18 reshape2_1.2.1 gmodels_2.15.2
[7] Hmisc_3.9-3 survival_2.36-14 xtable_1.7-0 plyr_1.7.1 ggplot2_0.9.1
loaded via a namespace (and not attached):
[1] RColorBrewer_1.0-5 cluster_1.14.2 dichromat_1.2-4 digest_0.5.2 gdata_2.8.2 gtools_2.6.2
[7] labeling_0.1 memoise_0.1 munsell_0.3 proto_0.3-9.2 scales_0.2.1 stringr_0.6
[13] tools_2.15.0
Potrebbe fornire l'output di 'sessionInfo()'?Se qualcuno può aiutare, potrebbe dover abbinare le versioni R e package per replicare questo. – joran
Posso replicarlo su R 2.15.0 con i pacchetti CRAN aggiornati (su Ubuntu) – Justin
Molto interessante. Sembra che il cambiamento nei risultati di 'transform()' compaia solo dopo aver caricato 'gmodels' (e non è stato risolto separando successivamente' gmodels'). Sono incuriosito ... (FWIW, sono su Windows XP, eseguendo R-devel, quindi sembra che questo non sia un problema specifico del sistema operativo o della versione.) –