Jak skalować wartości od 0 do 1 w r


Do skalowania wartości zmiennej od 0 do 1 w R można użyć następujących metod:

Metoda 1: użyj podstawy R

 #define function to scale values between 0 and 1
scale_values <- function (x){(x-min(x))/(max(x)-min(x))}

x_scaled <- rescale(x)

Metoda 2: Użyj pakietu skal

 library (scales)

x_scaled <- rescale(x)

Poniższe przykłady pokazują, jak w praktyce wykorzystać każdą metodę z następującą ramką danych w R:

 #create data frame
df <- data. frame (store=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'),
                 sales=c(12, 24, 23, 59, 45, 34, 50, 77))

#view data frame
df

  blind sales
1 to 12
2 B 24
3 C 23
4 D 59
5 E 45
6 F 34
7 G 50
8:77 a.m.

Przykład 1: Skaluj wartości od 0 do 1 przy użyciu podstawy R

Poniższy kod pokazuje jak zdefiniować niestandardową funkcję w bazie R, a następnie użyć tej funkcji do skalowania wartości w kolumnie sprzedaży ramki danych w zakresie od 0 do 1:

 #define function to scale values between 0 and 1
scale_values <- function (x){(x-min(x))/(max(x)-min(x))}

#scale values in 'sales' column to be between 0 and 1
df$sales <- scale_values(df$sales)

#view updated data frame
df

  blind sales
1 A 0.0000000
2 B 0.1846154
3 C 0.1692308
4 D 0.7230769
5 E 0.5076923
6 F 0.3384615
7G 0.5846154
8 H 1.0000000

Każda z wartości w kolumnie Sprzedaż jest teraz skalowana w zakresie od 0 do 1.

W tej funkcji do skalowania każdej z wartości zastosowano następujący wzór:

  • Wartość skalowana = (wartość – wartość minimalna) / (wartość maksymalna – wartość minimalna)

Na przykład skalowaną wartość sprzedaży w sklepie A obliczono w następujący sposób:

  • Wartość skalowana = (12 – 12) / (77 – 12) = 0 / 65 = 0 .

Podobnie wartość bieżącą sprzedaży sklepu B obliczono w następujący sposób:

  • Wartość skalowana = (24 – 12) / (77 – 12) = 12 / 65 = 0,1846 .

I tak dalej.

Przykład 2: Skaluj wartości od 0 do 1 za pomocą pakietu Scales

Poniższy kod pokazuje, jak użyć funkcji rescale() pakietu skal w R, aby przeskalować wartości w kolumnie sprzedaży ramki danych tak, aby zawierały się w przedziale od 0 do 1:

 library (scales)

#scale values in 'sales' column to be between 0 and 1
df$sales <- rescale(df$sales)

#view updated data frame
df

  blind sales
1 A 0.0000000
2 B 0.1846154
3 C 0.1692308
4 D 0.7230769
5 E 0.5076923
6 F 0.3384615
7G 0.5846154
8 H 1.0000000

Każda z wartości w kolumnie Sprzedaż jest teraz skalowana w zakresie od 0 do 1.

Należy pamiętać, że te przeskalowane wartości odpowiadają wartościom obliczonym przy użyciu metody podstawowej R.

Należy również pamiętać, że funkcja rescale() przyjmuje argument to , który określa zakres skalowanych wartości.

Na przykład możesz użyć poniższej składni, aby przeskalować wartości w kolumnie sprzedaży w zakresie od 0 do 100:

 library (scales)

#scale values in 'sales' column to be between 0 and 100
df$sales <- rescale(df$sales, to=c(0,100))

#view updated data frame
df

  blind sales
1 A 0.00000
2 B 18.46154
3 C 16.92308
4 D 72.30769
5 E 50.76923
6 F 33.84615
7G 58.46154
8 A.M. 100.00000

Każda z wartości w kolumnie Sprzedaż jest teraz skalowana w zakresie od 0 do 100.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:

Jak obliczyć średnią obciętą w R
Jak obliczyć średnią ważoną w R
Jak obliczyć maksymalną wartość w każdym wierszu w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *