Come utilizzare la funzione di scansione in r (con esempi)


È possibile utilizzare la funzione swep() in R per eseguire determinate operazioni sulle righe o sulle colonne di una matrice.

Questa funzione utilizza la seguente sintassi di base:

 sweep(x, MARGIN, STATS, FUN)

Oro:

  • x : nome della matrice
  • MARGINE : Il margine su cui eseguire la funzione (1=righe, 2=colonne)
  • STATS : i valori da utilizzare nella funzione
  • FUN : La funzione da eseguire

Gli esempi seguenti mostrano come utilizzare la funzione swep() in diversi scenari in R.

Esempio 1: utilizzare swep() per eseguire un’operazione sulle righe

Il codice seguente mostra come utilizzare la funzione swep() per aggiungere un numero specifico ai valori in ciascuna riga della matrice:

 #define matrix
mat <- matrix(1:15, nrow= 5 )

#view matrix
mast

     [,1] [,2] [,3]
[1,] 1 6 11
[2,] 2 7 12
[3,] 3 8 13
[4,] 4 9 14
[5,] 5 10 15

#add specific numbers to each row
sweep(mat, 1 , c(5, 10, 15, 20, 25), " + ")

     [,1] [,2] [,3]
[1,] 6 11 16
[2,] 12 17 22
[3,] 18 23 28
[4,] 24 29 34
[5,] 30 35 40

Ecco come ha funzionato la funzione swep() in questo scenario:

  • 5 è stato aggiunto a ciascun valore nella prima riga.
  • 10 è stato aggiunto a ciascun valore nella seconda riga.
  • 15 è stato aggiunto a ciascun valore nella terza riga.
  • 20 è stato aggiunto a ciascun valore nella quarta riga.
  • 25 è stato aggiunto a ciascun valore nella quinta riga.

Tieni presente che in questo esempio abbiamo utilizzato l’addizione (+) come operazione matematica da eseguire, ma potremmo scegliere di utilizzare un’operazione diversa.

Ad esempio, il codice seguente mostra come moltiplicare i valori in ciascuna riga per determinati numeri:

 #define matrix
mat <- matrix(1:15, nrow= 5 )

#view matrix
mast

     [,1] [,2] [,3]
[1,] 1 6 11
[2,] 2 7 12
[3,] 3 8 13
[4,] 4 9 14
[5,] 5 10 15

#multiply values in each row by certain amount
sweep(mat, 1 , c(.5, 1, 2, 4, 6), " * ")

     [,1] [,2] [,3]
[1,] 0.5 3 5.5
[2,] 2.0 7 12.0
[3,] 6.0 16 26.0
[4,] 16.0 36 56.0
[5,] 30.0 60 90.0

Esempio 2: utilizzare scanning() per eseguire un’operazione sulle colonne

Il codice seguente mostra come utilizzare la funzione swep() per aggiungere un numero specifico ai valori in ciascuna colonna della matrice:

 #define matrix
mat <- matrix(1:15, nrow= 5 )

#view matrix
mast

     [,1] [,2] [,3]
[1,] 1 6 11
[2,] 2 7 12
[3,] 3 8 13
[4,] 4 9 14
[5,] 5 10 15

#add specific numbers to each column
sweep(mat, 2 , c(5, 10, 15), " + ")

     [,1] [,2] [,3]
[1,] 6 16 26
[2,] 7 17 27
[3,] 8 18 28
[4,] 9 19 29
[5,] 10 20 30

Ecco come ha funzionato la funzione swep() in questo scenario:

  • 5 è stato aggiunto a ciascun valore nella prima colonna.
  • 10 è stato aggiunto a ciascun valore nella seconda colonna.
  • 15 è stato aggiunto a ciascun valore nella terza colonna.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni in R:

Come creare una matrice vuota in R
Come convertire un dataframe in una matrice in R
Come tracciare le righe di una matrice in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *