Aplicar función a cada fila en R DataFrame

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:

Usando aplicar()

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:

Usando aplicar()

Publicación traducida automáticamente

Artículo escrito por arpit122000 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *