Hoe de scale()-functie in r te gebruiken (met voorbeelden)


De functie scale() in R kan worden gebruikt om waarden in een vector-, matrix- of dataframe te schalen.

Deze functie gebruikt de volgende basissyntaxis:

 scale(x, center = TRUE , scale = TRUE )

Goud:

  • x : Naam van het object dat moet worden geschaald
  • midden : of het gemiddelde moet worden afgetrokken bij het schalen. De standaardwaarde is WAAR.
  • schaal : Of er bij het schalen moet worden gedeeld door de standaardafwijking. De standaardwaarde is WAAR.

Deze functie gebruikt de volgende formule om geschaalde waarden te berekenen:

geschaald x = ( oorspronkelijke x – x̄) / s

Goud:

  • originele x : de oorspronkelijke x-waarde
  • : De steekproefgemiddelden
  • s : de standaarddeviatie van het monster

Dit wordt ook wel datanormalisatie genoemd, waarbij elke oorspronkelijke waarde eenvoudigweg wordt omgezet in een z-score .

De volgende voorbeelden laten zien hoe u deze functie in de praktijk kunt gebruiken.

Voorbeeld 1: Schaalwaarden in een vector

Stel dat we de volgende vector van waarden in R hebben:

 #define vector of values
x <- c(1, 2, 3, 4, 5, 6, 7, 8, 9)

#view mean and standard deviation of values
mean(x)

[1] 5

sd(x)

[1] 2.738613

De volgende code laat zien hoe u vectorwaarden kunt schalen met behulp van de functie scale() :

 #scale the values of x
x_scaled <- scale(x)

#view scaled values
x_scaled

            [,1]
 [1,] -1.4605935
 [2,] -1.0954451
 [3,] -0.7302967
 [4,] -0.3651484
 [5,] 0.0000000
 [6,] 0.3651484
 [7,] 0.7302967
 [8,] 1.0954451
 [9,] 1.4605935

Hier ziet u hoe elke geschaalde waarde werd berekend:

  • Waarde 1: (1 – 5) / 2,738613 = -1,46
  • Waarde 2: (2 – 5) / 2,738613 = -1,09
  • Waarde 3: (3 – 5) / 2,738613 = -0,73

Enzovoort.

Merk op dat als we scale=FALSE specificeren, de functie bij het schalen niet zou delen door de standaardafwijking:

 #scale the values of x but don't divide by standard deviation
x_scaled <- scale(x, scale = FALSE )

#view scaled values
x_scaled

      [,1]
 [1,] -4
 [2,] -3
 [3,] -2
 [4,] -1
 [5,] 0
 [6,] 1
 [7,] 2
 [8,] 3
 [9,] 4

Hier ziet u hoe elke geschaalde waarde werd berekend:

  • Waarde 1: 1 – 5 = -4
  • Waarde 2: 2 – 5 = -3
  • Waarde 3: 3 – 5 = -2

Enzovoort.

Voorbeeld 2: Kolomwaarden schalen in een dataframe

Meestal gebruiken we de functie scale() wanneer we de waarden van meerdere kolommen in een dataframe zo willen schalen dat elke kolom een gemiddelde van 0 en een standaarddeviatie van 1 heeft.

Stel dat we bijvoorbeeld het volgende dataframe in R hebben:

 #create data frame
df <- data. frame (x=c(1, 2, 3, 4, 5, 6, 7, 8, 9),
                 y=c(10, 20, 30, 40, 50, 60, 70, 80, 90))

#view data frame
df

  xy
1 1 10
2 2 20
3 3 30
4 4 40
5 5 50
6 6 60
7 7 70
8 8 80
9 9 90

Merk op dat het waardenbereik van de y-variabele veel groter is dan het waardenbereik van de x-variabele.

We kunnen de functie scale() gebruiken om de waarden in de twee kolommen zo te schalen dat de geschaalde waarden van x en y beide een gemiddelde van 0 en een standaarddeviatie van 1 hebben:

 #scale values in each column of data frame
df_scaled <- scale(df)

#view scaled data frame
df_scaled

               xy
 [1,] -1.4605935 -1.4605935
 [2,] -1.0954451 -1.0954451
 [3,] -0.7302967 -0.7302967
 [4,] -0.3651484 -0.3651484
 [5,] 0.0000000 0.0000000
 [6,] 0.3651484 0.3651484
 [7,] 0.7302967 0.7302967
 [8,] 1.0954451 1.0954451
 [9,] 1.4605935 1.4605935

De x- en y-kolommen hebben nu een gemiddelde van 0 en een standaarddeviatie van 1.

Aanvullende bronnen

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

Hoe gegevens in R te normaliseren
Hoe gegevens in R te standaardiseren
Hoe u het gemiddelde kunt nemen over kolommen in R

Einen Kommentar hinzufügen

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