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