Cara menstandardisasi data di r: dengan contoh
Menstandarkan suatu kumpulan data berarti menskalakan semua nilai dalam kumpulan data sedemikian rupa sehingga nilai rata-ratanya adalah 0 dan simpangan bakunya adalah 1.
Cara paling umum untuk melakukan ini adalah dengan menggunakan standarisasi skor-z, yang menskalakan nilai menggunakan rumus berikut:
( xi – x ) / dtk
Emas:
- x i : nilai ke-i dari kumpulan data
- x : Maksud sampel
- s : simpangan baku sampel
Contoh berikut menunjukkan cara menggunakan fungsi scale() dengan paket dplyr di R untuk menskalakan satu atau lebih variabel dalam bingkai data menggunakan standarisasi skor-z.
Standarisasi satu variabel
Kode berikut menunjukkan cara menskalakan satu variabel dalam bingkai data dengan tiga variabel:
library (dplyr) #make this example reproducible set.seed(1) #create original data frame df <- data.frame(var1= runif(10, 0, 50), var2= runif(10, 2, 23), var3= runif(10, 5, 38)) #view original data frame df var1 var2 var3 1 13.275433 6.325466 35.845273 2 18.606195 5.707692 12.000703 3 28.642668 16.427480 26.505234 4 45.410389 10.066178 9.143318 5 10.084097 18.166670 13.818282 6 44.919484 12.451684 17.741765 7 47.233763 17.069989 5.441881 8 33.039890 22.830028 17.618803 9 31.455702 9.980739 33.699798 10 3.089314 18.326350 16.231517 #scale var1 to have mean = 0 and standard deviation = 1 df2 <- df %>% mutate_at (c(' var1 '), ~( scale (.) %>% as.vector )) df2 var1 var2 var3 1 -0.90606801 6.325466 35.845273 2 -0.56830963 5.707692 12.000703 3 0.06760377 16.427480 26.505234 4 1.13001072 10.066178 9.143318 5 -1.10827188 18.166670 13.818282 6 1.09890684 12.451684 17.741765 7 1.24554014 17.069989 5.441881 8 0.34621281 22.830028 17.618803 9 0.24583830 9.980739 33.699798 10 -1.55146305 18.326350 16.231517
Perhatikan bahwa hanya variabel pertama yang diskalakan sedangkan dua variabel lainnya tetap sama. Kami dapat dengan cepat mengonfirmasi bahwa variabel berskala baru memiliki nilai rata-rata 0 dan deviasi standar 1:
#calculate mean of scaled variable mean(df2$var1) [1] -4.18502e-18 #basically zero #calculate standard deviation of scaled variable sd(df2$var1) [1] 1
Standarisasi beberapa variabel
Kode berikut menunjukkan cara menskalakan beberapa variabel dalam bingkai data sekaligus:
library (dplyr) #make this example reproducible set.seed(1) #create original data frame df <- data.frame(var1= runif(10, 0, 50), var2= runif(10, 2, 23), var3= runif(10, 5, 38)) #scale var1 and var2 to have mean = 0 and standard deviation = 1 df3 <- df %>% mutate_at (c(' var1 ', ' var2 '), ~( scale (.) %>% as.vector )) df3 var1 var2 var3 1 -0.90606801 -1.3045574 35.845273 2 -0.56830963 -1.4133223 12.000703 3 0.06760377 0.4739961 26.505234 4 1.13001072 -0.6459703 9.143318 5 -1.10827188 0.7801967 13.818282 6 1.09890684 -0.2259798 17.741765 7 1.24554014 0.5871157 5.441881 8 0.34621281 1.6012242 17.618803 9 0.24583830 -0.6610127 33.699798 10 -1.55146305 0.8083098 16.231517
Standarisasi semua variabel
Kode berikut menunjukkan cara menskalakan semua variabel dalam bingkai data menggunakan fungsi mutate_all :
library (dplyr) #make this example reproducible set.seed(1) #create original data frame df <- data.frame(var1= runif(10, 0, 50), var2= runif(10, 2, 23), var3= runif(10, 5, 38)) #scale all variables to have mean = 0 and standard deviation = 1 df4 <- df %>% mutate_all (~( scale (.) %>% as.vector )) df4 var1 var2 var3 1 -0.90606801 -1.3045574 1.6819976 2 -0.56830963 -1.4133223 -0.6715858 3 0.06760377 0.4739961 0.7600871 4 1.13001072 -0.6459703 -0.9536246 5 -1.10827188 0.7801967 -0.4921813 6 1.09890684 -0.2259798 -0.1049130 7 1.24554014 0.5871157 -1.3189757 8 0.34621281 1.6012242 -0.1170501 9 0.24583830 -0.6610127 1.4702281 10 -1.55146305 0.8083098 -0.2539824
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di R:
Cara menormalkan data di R
Cara menghitung simpangan baku di R
Bagaimana cara memasukkan semua nilai yang hilang di R
Cara Mentransformasi Data di R (Log, Akar Kuadrat, Akar Kubus)