En este artículo, discutiremos cómo aplicar una función a cada fila en un marco de datos en el lenguaje de programación R. Pongamos un ejemplo para una mejor comprensión.
Ejemplo:
Supongamos que tenemos un conjunto de datos ficticio con A, B, C como nombres de columna y algún valor numérico como filas.
|
A |
B |
C |
---|---|---|---|
1. |
5 |
6 |
1 |
2. |
6 |
4 |
2 |
3. |
7 |
3 |
3 |
4. |
5 |
4 |
7 |
5. |
6 |
2 |
8 |
6. |
9 |
6 |
9 |
Y queremos aplicar una función que devolverá el producto de cada valor de fila, luego el marco de datos resultante debería verse así:
|
A |
B |
C |
producto |
---|---|---|---|---|
1. |
5 |
6 |
1 |
60 |
2. |
6 |
4 |
2 |
48 |
3. |
7 |
3 |
3 |
63 |
4. |
5 |
4 |
7 |
140 |
5. |
6 |
2 |
8 |
96 |
6. |
9 |
6 |
9 |
486 |
Aplique la función a cada fila en el marco de datos R:
Enfoque: uso de la función de aplicación
apply() se usa para calcular una función en un marco de datos o array. El propósito de usar la función apply() es evitar el uso de bucles. La función apply() devuelve la salida como un vector.
Sintaxis: apply(x, margin, func)
Parámetros:
x: Array o array
margin: dimensión sobre la que se va a aplicar la operación
func: operación a aplicar
Implementación paso a paso:
Paso 1: Cree un conjunto de datos ficticio.
R
# Apply function to each row in r Dataframe # Creating dataset # creating firs column x <- c(5, 6, 7, 5, 6, 9) # creating second column y <- c(6, 4, 3, 4, 2, 6) # creating third column z <- c(1, 2, 3, 7, 8, 9) # creating dataframe df <- data.frame(A = x, B = y, C = z) display(df)
Producción:
A B C 1 5 6 1 2 6 4 2 3 7 3 3 4 5 4 7 5 6 2 8 6 9 6 9
Paso 2: Cree una función personalizada para calcular productos.
R
# creating function to computer product product = function(x, output){ # accessing elements from first column A = x[1] # accessing elements from second column B=x[2] # accessing elements from third column C= x[3] # return product return(A*B*C) }
Nota: aquí solo estamos definiendo la función para calcular el producto y no llamando, por lo que no habrá salida hasta que llamemos a esta función.
Paso 3: Usa la función apply para calcular el producto de cada fila.
Sintaxis: (data_frame, 1, función,…)
Ahora llamamos a la función de producto recién creada y devolvemos el producto usando la función de aplicación.
R
# apply(X,MARGIN,FUN,...) apply(df,1,product )
Producción:
[1] 30 48 63 140 96 486
Nota: apply() devuelve el producto como una lista de vectores. Entonces tenemos que agregarlo al marco de datos usando cbind (enlace de columna).
Paso 4: agregue la lista de productos al marco de datos.
R
# apply(X,MARGIN,FUN,...) single <- apply(df,1,product ) # adding product vector to dataframe cbind(df,product = single)
Producción:
A continuación se muestra la implementación completa:
R
# Apply function to each row in r Dataframe # Creating dataset # creating firs column x <- c(5,6,7,5,6,9) # creating second column y <- c(6,4,3,4,2,6) # creating third column z <- c(1,2,3,7,8,9) # creating dataframe df <- data.frame(A=x,B=y,C=z) # creating function to computer product product = function(x,output){ # accessing elements from first column A = x[1] # accessing elements from second column B=x[2] # accessing elements from third column C= x[3] # return product return(A*B*C) } # apply(X,MARGIN,FUN,...) apply(df,1,product ) # apply(X,MARGIN,FUN,...) single <- apply(df,1,product ) # adding product vector to dataframe cbind(df,product = single)
Producción:
Publicación traducida automáticamente
Artículo escrito por arpit122000 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA