En este artículo, discutiremos cómo dividir cada fila de marco de datos por vector en el lenguaje de programación R.
Método 1: Usar el método mapply()
El método mapply() se puede usar para aplicar un FUN al marco de datos o una array, para modificar los datos. La función especificada como primer argumento puede ser cualquier operador booleano, aritmético o lógico. Luego se aplica el operador tomando la fila del marco de datos como un operando y el vector como el otro. El resultado tiene que ser almacenado en otra variable. El tiempo incurrido en esta operación es equivalente al número de filas en el marco de datos.
Sintaxis: mapply(FUN, df, vec)
Ejemplo:
R
# declaring dataframe data_frame <- data.frame(col1 = c(2,4,6), col2 = c(4,6,8), col3 = c(8,10,12), col4 = c(20,16,14)) print ("Original Dataframe") print (data_frame) # declaring vector vec <- c(1:4) # dividing each row by vector div <- mapply('/', data_frame, vec) print ("Result of division") print (div)
Producción
[1] "Original Dataframe" col1 col2 col3 col4 1 2 4 8 20 2 4 6 10 16 3 6 8 12 14 [1] "Result of division" col1 col2 col3 col4 [1,] 2 2 2.666667 5.0 [2,] 4 3 3.333333 4.0 [3,] 6 4 4.000000 3.5
Método 2: Usando el método de barrido()
Este método en el lenguaje de programación R devuelve una array obtenida de una array de entrada mediante el barrido de una estadística de resumen. El método se utiliza para calcular operaciones aritméticas en el marco de datos sobre el eje elegido. Para la operación por filas, el eje elegido es 2 y el operando se convierte en la fila del marco de datos. El resultado tiene que ser almacenado en otra variable. El tiempo incurrido en esta operación es equivalente al número de filas en el marco de datos. El tipo de datos de la columna resultante es el tipo de datos compatible más grande.
Sintaxis: barrido (df, eje, vec, op)
Parámetro:
- df – Marco de datos
- eje: para calcularlo en filas, use el eje = 1 y para las columnas, use el eje = 2
- vec: el vector que se aplicará en el marco de datos
- op – El operador a aplicar
Ejemplo:
R
# declaring dataframe data_frame <- data.frame(col1 = c(2,4,6), col2 = c(4,6,8), col3 = c(8,10,12), col4 = c(20,16,14)) print ("Original Dataframe") print (data_frame) # declaring vector vec <- c(1:4) # dividing each row by vector div <- sweep(data_frame,2,vec,'/') print ("Result of division") print (div)
Producción
[1] "Original Dataframe" col1 col2 col3 col4 1 2 4 8 20 2 4 6 10 16 3 6 8 12 14 [1] "Result of division" col1 col2 col3 col4 1 2 2 2.666667 5.0 2 4 3 3.333333 4.0 3 6 4 4.000000 3.5
Publicación traducida automáticamente
Artículo escrito por yashkumar0457 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA