El paquete dplyr en el lenguaje de programación R es una estructura de manipulación de datos que proporciona un conjunto uniforme de verbos, lo que ayuda a resolver los obstáculos de manipulación de datos más frecuentes.
El paquete dplyr en R realiza los pasos que se indican a continuación de forma más rápida y sencilla:
- Al limitar las opciones, ahora el enfoque puede centrarse más en las dificultades de manipulación de datos.
- Hay «verbos» sencillos, funciones presentes para abordar cada manipulación de datos común y los pensamientos se pueden traducir a código más rápido.
- Hay backends valiosos y, por lo tanto, se reduce el tiempo de espera para la computadora.
Funciones verbales importantes
El paquete dplyr proporciona varias funciones importantes que se pueden usar para la manipulación de datos. Estos son:
- Función filter(): para elegir casos y usar sus valores como base para hacerlo.
R
# Create a data frame with missing data d < - data.frame(name=c("Abhi", "Bhavesh", "Chaman", "Dimri"), age=c(7, 5, 9, 16), ht=c(46, NA, NA, 69), school=c("yes", "yes", "no", "no")) d # Finding rows with NA value d % > % filter(is.na(ht)) # Finding rows with no NA value d % > % filter(! is.na(ht))
Producción:
# A tibble: 4 x 4 name age ht school 1 Abhi 7 46 yes 2 Bhavesh 5 NA yes 3 Chaman 9 NA no 4 Dimri 16 69 no # A tibble: 2 x 4 name age ht school 1 Bhavesh 5 NA yes 2 Chaman 9 NA no # A tibble: 2 x 4 name age ht school 1 Abhi 7 46 yes 2 Dimri 16 69 no
- arreglar(): Para reordenar los casos.
R
# Create a data frame with missing data d <- data.frame( name = c("Abhi", "Bhavesh", "Chaman", "Dimri"), age = c(7, 5, 9, 16), ht = c(46, NA, NA, 69), school = c("yes", "yes", "no", "no") ) # Arranging name according to the age d.name<- arrange(d, age) print(d.name)
Producción:
# A tibble: 4 x 4 name age ht school 1 Bhavesh 5 NA yes 2 Abhi 7 46 yes 3 Chaman 9 NA no 4 Dimri 16 69 no
- select() y rename(): para elegir variables y usar sus nombres como base para hacerlo.
R
# Create a data frame with missing data d < - data.frame(name=c("Abhi", "Bhavesh", "Chaman", "Dimri"), age=c(7, 5, 9, 16), ht=c(46, NA, NA, 69), school=c("yes", "yes", "no", "no")) # startswith() function to print only ht data select(d, starts_with("ht")) # -startswith() function to print # everything except ht data select(d, -starts_with("ht")) # Printing column 1 to 2 select(d, 1: 2) # Printing data of column # heading containing 'a' select(d, contains("a")) # Printing data of column # heading which matches 'na' select(d, matches("na"))
Producción:
# A tibble: 4 x 1 ht 1 46 2 NA 3 NA 4 69 # A tibble: 4 x 3 name age school 1 Abhi 7 yes 2 Bhavesh 5 yes 3 Chaman 9 no 4 Dimri 16 no # A tibble: 4 x 2 name age 1 Abhi 7 2 Bhavesh 5 3 Chaman 9 4 Dimri 16 # A tibble: 4 x 2 name age 1 Abhi 7 2 Bhavesh 5 3 Chaman 9 4 Dimri 16 # A tibble: 4 x 1 name 1 Abhi 2 Bhavesh 3 Chaman 4 Dimri
- mutate() y transmute(): Adición de nuevas variables que son las funciones de las variables prevalecientes.
R
# Create a data frame with missing data d <- data.frame( name = c("Abhi", "Bhavesh", "Chaman", "Dimri"), age = c(7, 5, 9, 16), ht = c(46, NA, NA, 69), school = c("yes", "yes", "no", "no") ) # Calculating a variable x3 which is sum of height # and age printing with ht and age mutate(d, x3 = ht + age) # Calculating a variable x3 which is sum of height # and age printing without ht and age transmute(d, x3 = ht + age)
Producción:
# A tibble: 4 x 5 name age ht school x3 1 Abhi 7 46 yes 53 2 Bhavesh 5 NA yes NA 3 Chaman 9 NA no NA 4 Dimri 16 69 no 85 # A tibble: 4 x 1 x3 1 53 2 NA 3 NA 4 85 >
- summarise(): condensar varios valores en un solo valor.
R
# Create a data frame with missing data d <- data.frame( name = c("Abhi", "Bhavesh", "Chaman", "Dimri"), age = c(7, 5, 9, 16), ht = c(46, NA, NA, 69), school = c("yes", "yes", "no", "no") ) # Calculating mean of age summarise(d, mean = mean(age)) # Calculating min of age summarise(d, med = min(age)) # Calculating max of age summarise(d, med = max(age)) # Calculating median of age summarise(d, med = median(age))
Producción:
# A tibble: 1 x 1 mean 1 9.25 # A tibble: 1 x 1 med 1 5 # A tibble: 1 x 1 med 1 16 # A tibble: 1 x 1 med 1 8
- sample_n() y sample_frac(): para tomar muestras al azar.
R
# Create a data frame with missing data d <- data.frame( name = c("Abhi", "Bhavesh", "Chaman", "Dimri"), age = c(7, 5, 9, 16), ht = c(46, NA, NA, 69), school = c("yes", "yes", "no", "no") ) # Printing three rows sample_n(d, 3) # Printing 50 % of the rows sample_frac(d, 0.50)
Producción:
# A tibble: 3 x 4 name age ht school 1 Abhi 7 46 yes 2 Bhavesh 5 NA yes 3 Chaman 9 NA no # A tibble: 2 x 4 name age ht school 1 Dimri 16 69 no 2 Bhavesh 5 NA yes