2012-01-09 19 views
5

Gracias de antemano por su respuesta. estoy tratando de crear un gráfico de barras apiladas de un archivo csv, y se han topado con la siguiente hipo: Primero me puso el csv en una variable:Barplot no evalúa los datos en R

test <- read.csv(file=\"test4.csv\",sep=\",\",head=TRUE") 

entonces trato de crear un gráfico de barras usando la siguiente

barplot(test) 

y me sale el siguiente error,

Error in barplot.default(test) : 'height' must be a vector or a matrix 

así que trato

barplot(t(test)) 

y funciona como se esperaba, pero el eje se cambian, así que trato

barplot(t(t(test))) 

y funciona, pero siento que debe haber una solución mejor que la transposición de la transposición.

Respuesta

12

El problema es que read.csv outputs a data frame y barplot expects either a vector or a matrix. La función barplot funciona cuando transpone porque t() coerces data frames to matrices.

Si bien comienza con

test <- as.matrix(read.csv(file="test4.csv",sep=",",head=TRUE)) 

o posterior en hacer

barplot(as.matrix(test)) 

entonces usted debe estar bien.

+0

¡Genial! pregunta lateral: ¿cómo puedo decir que la primera columna no forma parte de los datos? –

+2

¿Quiere decir que no desea incluir la primera columna de 'prueba'? En ese caso, puede llamar 'barplot (as.matrix (test [, 2: ncol (test)]))' (es decir, tomando las columnas de 'test' comenzando con el segundo y terminando con todas las columnas' test' que tenga (que es 'ncol (prueba)')). –

Cuestiones relacionadas