Quería crear una barra de barras en la que las barras se ordenaran por altura en lugar de alfabéticamente por categoría. Esto funcionó bien cuando el único paquete que cargué fue ggplot2. Sin embargo, cuando cargué algunos paquetes más y ejecuté el mismo código que creó, ordenó y trazó mi marco de datos, las barras volvieron a ordenarse alfabéticamente de nuevo.El factor de reordenación arroja resultados diferentes, dependiendo de qué paquetes están cargados
Comprobé el marco de datos cada vez usando str()
y resultó que los atributos del marco de datos ahora eran diferentes, aunque siempre ejecutaba el mismo código.
Mi código y resultados se enumeran a continuación. ¿Alguien puede explicar el comportamiento diferente? ¿Por qué cargar algunos paquetes aparentemente no relacionados (no relacionados en el sentido de que ninguna de las funciones que estoy usando parecen estar enmascaradas por los paquetes recién cargados) cambia el resultado de ejecutar la función transform()
?
Caso 1: Sólo ggplot2 cargado
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: Cargar varios paquetes más, a continuación, ejecutar el mismo código de nuevo
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
ACTUALIZACIÓN: SessionInfo()
Caso 1: Ran sessionInfo() después de cargar 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() después de cargar los paquetes adicionales
> 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
Podría dar la salida de 'sessionInfo()'?Si alguien puede ayudar, pueden tener que coincidir con su R y las versiones del paquete para replicar esto. – joran
Puedo replicar esto en R 2.15.0 con los paquetes actualizados de CRAN (en Ubuntu) – Justin
Muy interesante. Parece que el cambio en los resultados de 'transform()' solo aparece después de cargar 'gmodels' (y no se soluciona al desconectar' gmodels'). Estoy intrigado ... (FWIW, estoy en Windows XP, ejecutando R-devel, por lo que parece que esto no es un problema específico de la versión del sistema operativo o). –