Cara menskalakan nilai antara 0 dan 1 di r


Anda dapat menggunakan metode berikut untuk menskalakan nilai variabel antara 0 dan 1 di R:

Metode 1: gunakan basis 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)

Metode 2: Gunakan paket timbangan

 library (scales)

x_scaled <- rescale(x)

Contoh berikut menunjukkan cara menggunakan setiap metode dalam praktik dengan kerangka data berikut di 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.

Contoh 1: Skalakan nilai antara 0 dan 1 menggunakan basis R

Kode berikut menunjukkan cara menentukan fungsi kustom di basis R dan kemudian menggunakan fungsi tersebut untuk menskalakan nilai di kolom penjualan bingkai data antara 0 dan 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

Setiap nilai di kolom Penjualan kini berskala antara 0 dan 1.

Fungsi ini menggunakan rumus berikut untuk menskalakan setiap nilai:

  • Nilai berskala = (nilai – nilai minimum) / (nilai maksimal – nilai minimum)

Misalnya, nilai skala penjualan toko A dihitung sebagai berikut:

  • Nilai berskala = (12 – 12) / (77 – 12) = 0 / 65 = 0 .

Demikian pula, nilai sekarang penjualan toko B dihitung sebagai berikut:

  • Nilai berskala = (24 – 12) / (77 – 12) = 12 / 65 = 0,1846 .

Dan seterusnya.

Contoh 2: Skalakan nilai antara 0 dan 1 menggunakan paket Scales

Kode berikut menunjukkan cara menggunakan fungsi rescale() dari paket skala di R untuk menskalakan nilai di kolom penjualan bingkai data antara 0 dan 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

Setiap nilai di kolom Penjualan kini berskala antara 0 dan 1.

Perhatikan bahwa nilai skala ini sesuai dengan nilai yang dihitung menggunakan metode dasar R.

Perhatikan juga bahwa fungsi rescale() menerima argumen to yang menentukan rentang nilai yang diskalakan.

Misalnya, Anda bisa menggunakan sintaks berikut untuk menskalakan nilai di kolom penjualan antara 0 dan 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

Setiap nilai di kolom Penjualan kini berskala antara 0 dan 100.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di R:

Cara menghitung mean terpangkas di R
Cara menghitung rata-rata tertimbang dalam R
Cara menghitung nilai maksimum di setiap baris di R

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *