variable una poner nombres nombre filas etiquetar como columnas columna colocar cambiarle cambiar asignar r plot ggplot2

una - nombre filas en r



¿Cómo referirse a un nombre de variable con espacios? (3)

Algo similar se solicitó en la lista de correo ggplot2 y Mehmet Gültaş vinculado a esta publicación. Otra forma de usar cadenas para construir su llamada ggplot es a través de la función aes_strings . Tenga en cuenta que todavía tiene que poner comillas invertidas dentro de las comillas para que la cosa funcione con variables con espacios.

library(ggplot2) names(mtcars)[1] <- "em pi dzi" ggplot(mtcars, aes_string(x = "cyl", y = "`em pi dzi`")) + theme_bw() + geom_jitter()

En ggplot2 , ¿cómo me refiero a un nombre de variable con espacios?

¿Por qué qplot() y ggplot() rompen cuando se usan en nombres de variables con comillas?

Por ejemplo, esto funciona:

qplot(x,y,data=a)

Pero esto no lo hace:

qplot("x","y",data=a)

Pregunto porque a menudo tengo matrices de datos con espacios en el nombre. Por ejemplo, "Ingreso del Estado". ggplot2 necesita marcos de datos; ok puedo convertir Así que me gustaría probar algo como:

qplot("State Income","State Ideology",data=as.data.frame(a.matrix))

Que falla

Mientras que en los gráficos base R, yo haría:

plot(a.matrix[,"State Income"],a.matrix[,"State Ideology"])

Lo que funcionaría.

¿Algunas ideas?


Respuesta: porque ''x'' y ''y'' se consideran un vector de caracteres de longitud-uno, no un nombre de variable. Aquí descubrirá por qué no es inteligente usar nombres de variables con espacios en R. O cualquier otro lenguaje de programación para esa materia.

Para referirse a nombres de variables con espacios, puede usar cualquiera de las soluciones hadleys

a.matrix <- matrix(rep(1:10,3),ncol=3) colnames(a.matrix) <- c("a name","another name","a third name") qplot(`a name`, `another name`,data=as.data.frame(a.matrix)) # backticks!

o lo mas formal

qplot(get(''a name''), get(''another name''),data=as.data.frame(a.matrix))

Este último se puede utilizar en construcciones donde se pasa el nombre de una variable como una cadena, por ejemplo, en una construcción de bucle:

for (i in c("another name","a third name")){ print(qplot(get(i),get("a name"), data=as.data.frame(a.matrix),xlab=i,ylab="a name")) Sys.sleep(5) }

Aún así, la mejor solución es no usar nombres de variables con espacios.


Usar get no es más "formal", en realidad yo diría lo contrario. Como dice la ayuda de R ( help("`") ), casi siempre se puede usar un nombre de variable que contenga espacios, siempre que se indique . (Normalmente, con un retroceso, como ya se sugirió.)