visualizar mtcars español empty ejemplos data create crear column r dataframe

español - r data frame mtcars



R: inserta un vector como una fila en data.frame (3)

No diría que es la solución más elegante y bonita que existe, pero hace el trabajo bien. Tenga en cuenta que cada fila de dataframe lleva su propio nombre de fila, lo que se convierte en un problema al insertar nuevas líneas. Dicho esto, puede reparar esto con row.names (ver abajo).

my.df <- data.frame(a = runif(10), b = runif(10), c = runif(10)) my.vec <- c(1, 1, 1) new.df <- rbind(my.df[1:5, ], my.vec, my.df[6:nrow(my.df), ]) new.df a b c 1 0.45433791 0.3798105 0.84514864 2 0.07074529 0.4985765 0.53912585 3 0.09645574 0.5441647 0.96636213 4 0.60788436 0.6070706 0.53791603 5 0.01593911 0.1697248 0.62697924 6 1.00000000 1.0000000 1.00000000 61 0.98455694 0.2206702 0.85500531 7 0.85356834 0.5279596 0.27462326 8 0.48028935 0.6689572 0.05428349 9 0.95675901 0.6875491 0.77642924 10 0.24691330 0.7980741 0.24013096 row.names(new.df) <- 1:nrow(new.df) # make row names pretty again

¿Puedo insertar un vector como una fila en un data.frame ? ¿Si es así, cómo?


rbind es bueno, pero realmente complicado, ya que maneja el número de fila exacto antes y después. Una forma más rápida es usar insertRow en el paquete miscTools .

En el ejemplo del conjunto de datos anterior, el código sería:

my.df <- as.matrix(data.frame(a = runif(10), b = runif(10), c = runif(10))) my.vec <- c(1, 1, 1) new.df <- insertRow(my.df,7,my.vec) new.df

Hope sería útil.


Hacer un datagrama R desde el vector, horizontalmente

La idea clave es usar el método de transposición R: t(...) para transponer el vector antes de pasarlo al constructor de data.frame .

my_name_vector = c("penguin1", "penguin2", "penguin3", "penguin4"); my_data_vector = c("Skipper", "Kowalski", "Rico", "Private"); supplemental_vector = c("Mumble", "Dorthy", "Norma", "Memphis"); #create a data frame out of a transposed vector penguins = as.data.frame(t(my_data_vector)); #change the names of the dataframe to be the titles colnames(penguins) <- my_name_vector; supplemental_data_frame <- data.frame(t(supplemental_vector)); colnames(supplemental_data_frame) <- my_name_vector; supplemental_data_frame; #rbind means row bind, pass in two data.frame penguins <- rbind(penguins, supplemental_data_frame); penguins;

Huellas dactilares:

penguin1 penguin2 penguin3 penguin4 1 Mumble Dorthy Norma Memphis penguin1 penguin2 penguin3 penguin4 1 Skipper Kowalski Rico Private 2 Mumble Dorthy Norma Memphis

El método rbind es muy ineficiente, por lo que si hace esto más de unos cientos de filas, espere esperar mucho tiempo. Si necesita un rayo rápido, necesita preasignar el espacio o utilizar el método de la lista como se muestra aquí: https://.com/a/20689857/445131