Hoe de scanfunctie in r te gebruiken (met voorbeelden)


U kunt de functie sweep() in R gebruiken om bepaalde bewerkingen uit te voeren op de rijen of kolommen van een matrix.

Deze functie gebruikt de volgende basissyntaxis:

 sweep(x, MARGIN, STATS, FUN)

Goud:

  • x : Matrixnaam
  • MARGE : De marge waarop de functie moet worden uitgevoerd (1=rijen, 2=kolommen)
  • STATS : De waarde(n) die in de functie moet(en) worden gebruikt
  • FUN : De uit te voeren functie

De volgende voorbeelden laten zien hoe u de functie sweep() in verschillende scenario’s in R kunt gebruiken.

Voorbeeld 1: Gebruik swep() om een bewerking op rijen uit te voeren

De volgende code laat zien hoe u de functie sweep() gebruikt om een specifiek getal toe te voegen aan de waarden in elke rij van de matrix:

 #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

Zo werkte de functie sweep() in dit scenario:

  • Aan elke waarde op de eerste regel is 5 toegevoegd.
  • Er is 10 toegevoegd aan elke waarde op de tweede regel.
  • Er is 15 toegevoegd aan elke waarde in de derde rij.
  • Er is 20 toegevoegd aan elke waarde in de vierde rij.
  • Er is 25 toegevoegd aan elke waarde in de vijfde rij.

Merk op dat we in dit voorbeeld optelling (+) hebben gebruikt als wiskundige bewerking, maar we kunnen er ook voor kiezen om een andere bewerking te gebruiken.

De volgende code laat bijvoorbeeld zien hoe u de waarden in elke rij met bepaalde getallen kunt vermenigvuldigen:

 #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

Voorbeeld 2: Gebruik scanning() om een bewerking op kolommen uit te voeren

De volgende code laat zien hoe u de functie sweep() gebruikt om een specifiek getal toe te voegen aan de waarden in elke kolom van de matrix:

 #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

Zo werkte de functie sweep() in dit scenario:

  • Aan elke waarde in de eerste kolom is 5 toegevoegd.
  • Aan elke waarde in de tweede kolom werd 10 toegevoegd.
  • Aan elke waarde in de derde kolom werd 15 toegevoegd.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in R kunt uitvoeren:

Hoe maak je een lege matrix in R
Hoe een dataframe naar een matrix in R te converteren
Hoe rijen van een matrix in R te plotten

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert