Contenido de este artículo
- 0
- 0
- 0
- 0
Este tutorial explica cómo usar la función mutate () en R para agregar nuevas variables a un marco de datos.
Agregar nuevas variables en R
Las siguientes funciones de la biblioteca dplyr se pueden usar para agregar nuevas variables a un marco de datos:
mutate () : agrega nuevas variables a un marco de datos mientras conserva las variables existentes
transmutar () : agrega nuevas variables a un marco de datos y elimina las variables existentes
mutate_all () : modifica todas las variables en un marco de datos a la vez
mutate_at () – modifica variables específicas por nombre
mutate_if () : modifica todas las variables que cumplen una determinada condición
mudar()
La función mutate () agrega nuevas variables a un marco de datos mientras conserva las variables existentes.La sináxis básica para mutate () es la siguiente:
datos <- mutar (nueva_variable = existente_variable / 3)
- datos: el nuevo marco de datos para asignar las nuevas variables a
- new_variable: el nombre de la nueva variable
- existente_variable: la variable existente en el marco de datos en la que desea realizar alguna operación para crear la nueva variable
Por ejemplo, el siguiente código ilustra cómo agregar una nueva variable root_sepal_width al conjunto de datos de iris incorporado :
#define el marco de datos como las primeras seis líneas del conjunto de datos del iris datos <- cabeza (iris) #ver datos datos # Sepal.Length Sepal.Width Petal.Length Petal.Width Especies # 1 5,1 3,5 1,4 0,2 setosa # 2 4,9 3,0 1,4 0,2 setosa # 3 4,7 3,2 1,3 0,2 setosa # 4 4,6 3,1 1,5 0,2 setosa # 5 5.0 3.6 1.4 0.2 setosa # 6 5,4 3,9 1,7 0,4 setosa #load dplyr biblioteca biblioteca (dplyr) #define nueva columna root_sepal_width como la raíz cuadrada de la Sepal.Width variable de datos%>% mutar (root_sepal_width = sqrt (Sepal.Width)) # Sepal.Length Sepal.Width Petal.Length Petal.Width Especies root_sepal_width # 1 5.1 3.5 1.4 0.2 setosa 1.870829 # 2 4,9 3,0 1,4 0,2 setosa 1,732051 # 3 4,7 3,2 1,3 0,2 setosa 1,788854 # 4 4,6 3,1 1,5 0,2 setosa 1,760682 # 5 5.0 3.6 1.4 0.2 setosa 1.897367 # 6 5,4 3,9 1,7 0,4 setosa 1,974842
transmutar()
La función transmute () agrega nuevas variables a un marco de datos y elimina las variables existentes. El siguiente código ilustra cómo agregar dos nuevas variables a un conjunto de datos y eliminar todas las variables existentes:
#define el marco de datos como las primeras seis líneas de los datos del conjunto de datos del iris <- cabeza (iris) #ver datos de datos # Sepal.Length Sepal.Width Petal.Length Petal.Width Especies # 1 5,1 3,5 1,4 0,2 setosa # 2 4,9 3,0 1,4 0,2 setosa # 3 4,7 3,2 1,3 0,2 setosa # 4 4,6 3,1 1,5 0,2 setosa # 5 5.0 3.6 1.4 0.2 setosa # 6 5,4 3,9 1,7 0,4 setosa # definir dos nuevas variables y eliminar todas las variables existentes data%>% transmute (root_sepal_width = sqrt (Sepal.Width), root_petal_width = sqrt (Petal.Width)) # root_sepal_width root_petal_width # 1 1.870829 0.4472136 # 2 1.732051 0.4472136 # 3 1.788854 0.4472136 # 4 1.760682 0.4472136 # 5 1.897367 0.4472136 # 6 1.974842 0.6324555
mutate_all ()
La función mutate_all () modifica todas las variables en un marco de datos a la vez, lo que le permite realizar una función específica en todas las variables mediante el uso de la función funs () . El siguiente código ilustra cómo dividir todas las columnas en un marco de datos por 10 usando mutate_all () :
#definir el nuevo marco de datos como las primeras seis filas de iris sin la variable Species data2 <- head (iris)%>% select (-Species) #ver el nuevo marco de datos datos2 # Sepal.Length Sepal.Width Petal.Length Petal.Width # 1 5,1 3,5 1,4 0,2 # 2 4,9 3,0 1,4 0,2 # 3 4,7 3,2 1,3 0,2 # 4 4,6 3,1 1,5 0,2 # 5 5,0 3,6 1,4 0,2 # 6 5,4 3,9 1,7 0,4 #divide todas las variables en el marco de datos por 10 data2%>% mutate_all (funs (./ 10)) # Sepal.Length Sepal.Width Petal.Length Petal.Width # 1 0,51 0,35 0,14 0,02 # 2 0,49 0,30 0,14 0,02 # 3 0,47 0,32 0,13 0,02 # 4 0,46 0,31 0,15 0,02 # 5 0,50 0,36 0,14 0,02 # 6 0,54 0,39 0,17 0,04
Tenga en cuenta que se pueden agregar variables adicionales al marco de datos especificando un nuevo nombre que se agregará al nombre de la variable anterior:
data2%>% mutate_all (funs (mod = ./10)) # Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length_mod # 1 5,1 3,5 1,4 0,2 0,51 # 2 4,9 3,0 1,4 0,2 0,49 # 3 4,7 3,2 1,3 0,2 0,47 # 4 4,6 3,1 1,5 0,2 0,46 # 5 5,0 3,6 1,4 0,2 0,50 # 6 5,4 3,9 1,7 0,4 0,54 # Sepal.Width_mod Petal.Length_mod Petal.Width_mod # 1 0,35 0,14 0,02 # 2 0,30 0,14 0,02 # 3 0,32 0,13 0,02 # 4 0,31 0,15 0,02 # 5 0,36 0,14 0,02 # 6 0,39 0,17 0,04
mutate_at ()
La función mutate_at () modifica variables específicas por nombre. El siguiente código ilustra cómo dividir dos variables específicas por 10 usando mutate_at () :
data2%>% mutate_at (c ("Sepal.Length", "Sepal.Width"), funs (mod = ./10)) # Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length_mod # 1 5,1 3,5 1,4 0,2 0,51 # 2 4,9 3,0 1,4 0,2 0,49 # 3 4,7 3,2 1,3 0,2 0,47 # 4 4,6 3,1 1,5 0,2 0,46 # 5 5,0 3,6 1,4 0,2 0,50 # 6 5,4 3,9 1,7 0,4 0,54 # Sepal.Width_mod # 1 0.35 # 2 0,30 N.º 3 0,32 N.º 4 0,31 N.º 5 0,36 N.º 6 0,39
mutate_if ()
La función mutate_if () modifica todas las variables que cumplen una determinada condición. El siguiente código ilustra cómo usar la función mutate_if () para convertir cualquier variable de factor de tipo en carácter de tipo :
# encontrar el tipo de variable de cada variable en un marco de datos datos <- cabeza (iris) sapply (datos, clase) # Sepal.Length Sepal.Width Petal.Length Petal.Width Especies # "numérico" "numérico" "numérico" "numérico" "factor" #convertir cualquier variable de factor de tipo en carácter de tipo new_data <- data%>% mutate_if (is.factor, as.character) sapply (nuevos_datos, clase) # Sepal.Length Sepal.Width Petal.Length Petal.Width Especies # "numérico" "numérico" "numérico" "numérico" "carácter"
El siguiente código ilustra cómo usar la función mutate_if () para redondear cualquier variable de tipo numérico a un lugar decimal:
# definir datos como las primeras seis filas del conjunto de datos de iris datos <- cabeza (iris) #ver datos datos # Sepal.Length Sepal.Width Petal.Length Petal.Width Especies # 1 5,1 3,5 1,4 0,2 setosa # 2 4,9 3,0 1,4 0,2 setosa # 3 4,7 3,2 1,3 0,2 setosa # 4 4,6 3,1 1,5 0,2 setosa # 5 5.0 3.6 1.4 0.2 setosa # 6 5,4 3,9 1,7 0,4 setosa # redondear las variables de tipo numérico a un decimal datos%>% mutate_if (es numérico, redondo, dígitos = 0) # Sepal.Length Sepal.Width Petal.Length Petal.Width Especies # 1 5 4 1 0 setosa # 2 5 3 1 0 setosa # 3 5 3 1 0 setosa # 4 5 3 2 0 setosa # 5 5 4 1 0 setosa # 6 5 4 2 0 setosa
Más información:
Una guía para aplicar (), lapply (), sapply () y tapply () en R
Cómo organizar filas en R
Cómo filtrar filas en R
- https://r-project.org
- https://www.python.org/
- https://www.stata.com/
¿Te hemos ayudado?
Ayudanos ahora tú, dejanos un comentario de agradecimiento, nos ayuda a motivarnos y si te es viable puedes hacer una donación:La ayuda no cuesta nada
Por otro lado te rogamos que compartas nuestro sitio con tus amigos, compañeros de clase y colegas, la educación de calidad y gratuita debe ser difundida, recuerdalo: