varias graficas example espaƱol ejemplos data crear colnames r vector matrix cbind

graficas - cbind reemplaza a String con number?



rbind data frame r (2)

Para los vectors se combinan con cbind , el resultado sería una matrix , que solo puede contener un tipo de datos. Por lo tanto, el factor "Especie" se ve forzado a su valor numérico subyacente.

Pruebe cbind.data.frame en cbind.data.frame lugar (o simplemente data.frame ) si necesita que sus columnas tengan diferentes tipos de datos.

> head(data.frame(x, y)) x y 1 3.5 setosa 2 3.0 setosa 3 3.2 setosa 4 3.1 setosa 5 3.6 setosa 6 3.9 setosa > head(cbind.data.frame(x, y)) x y 1 3.5 setosa 2 3.0 setosa 3 3.2 setosa 4 3.1 setosa 5 3.6 setosa 6 3.9 setosa

x = iris$Sepal.Width; y = iris$Species; m = cbind(x,y);

la salida de m es:

x y [1,] 3.5 1 [2,] 3.0 1 [3,] 3.2 1 [4,] 3.1 1 [5,] 3.6 1 [6,] 3.9 1

pero quiero ''setosa'', etc. en la columna y en lugar de un número

¿Cómo puedo hacer eso?

Quiero combinar los 2 vectores porque quiero filtrar luego con

m[m[,"y"]=="virginica",]

¿o hay otra oportunidad de hacerlo sin cbind?


cbind() devuelve una matrix que debe ser de una sola clase. En este caso, todo se convierte en character porque esa es la clase más general (puede expresar números como personajes, pero no al revés). R confía en data.frame para almacenar columnas de diferentes clases.

Para hacer lo que quiera, puede crear explícitamente un nuevo data.frame o usar un subconjunto del actual:

iris2 <- data.frame(x=iris$Sepal.Width, y=iris$Species) ## creates new data.frame iris[, c("Sepal.Width", "Species") ## returns subset of iris

Si publica el problema que intenta resolver, puede haber una forma más simplificada para hacer el filtrado que desea.