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
- x̄ : 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