आर में 0 और 1 के बीच मानों को कैसे स्केल करें
आप R में 0 और 1 के बीच एक वेरिएबल के मानों को स्केल करने के लिए निम्नलिखित विधियों का उपयोग कर सकते हैं:
विधि 1: आर बेस का उपयोग करें
#define function to scale values between 0 and 1 scale_values <- function (x){(x-min(x))/(max(x)-min(x))} x_scaled <- rescale(x)
विधि 2: स्केल पैकेज का उपयोग करें
library (scales)
x_scaled <- rescale(x)
निम्नलिखित उदाहरण दिखाते हैं कि आर में निम्नलिखित डेटा फ्रेम के साथ व्यवहार में प्रत्येक विधि का उपयोग कैसे करें:
#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.
उदाहरण 1: आधार आर का उपयोग करके 0 और 1 के बीच मानों को स्केल करें
निम्नलिखित कोड दिखाता है कि बेस आर में एक कस्टम फ़ंक्शन को कैसे परिभाषित किया जाए और फिर 0 और 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
बिक्री कॉलम में प्रत्येक मान को अब 0 और 1 के बीच स्केल किया गया है।
इस फ़ंक्शन ने प्रत्येक मान को स्केल करने के लिए निम्नलिखित सूत्र का उपयोग किया:
- स्केल किया गया मान = (मान – न्यूनतम मान) / (अधिकतम मान – न्यूनतम मान)
उदाहरण के लिए, स्टोर ए की बिक्री के लिए स्केल किए गए मूल्य की गणना निम्नानुसार की गई थी:
- स्केल किया गया मान = (12 – 12) / (77 – 12) = 0/65 = 0 ।
इसी प्रकार, स्टोर बी की बिक्री के वर्तमान मूल्य की गणना इस प्रकार की गई:
- स्केल किया गया मान = (24 – 12) / (77 – 12) = 12 / 65 = 0.1846 ।
और इसी तरह।
उदाहरण 2: स्केल पैकेज का उपयोग करके 0 और 1 के बीच मानों को स्केल करें
निम्नलिखित कोड दिखाता है कि डेटा फ्रेम के बिक्री कॉलम में मानों को 0 और 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
बिक्री कॉलम में प्रत्येक मान को अब 0 और 1 के बीच स्केल किया गया है।
ध्यान दें कि ये स्केल किए गए मान आर बेस विधि का उपयोग करके गणना किए गए मानों से मेल खाते हैं।
यह भी ध्यान दें कि रीस्केल() फ़ंक्शन एक तर्क को स्वीकार करता है जो स्केल किए गए मानों की सीमा निर्दिष्ट करता है।
उदाहरण के लिए, आप बिक्री कॉलम में मानों को 0 और 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
बिक्री कॉलम में प्रत्येक मान को अब 0 और 100 के बीच स्केल किया गया है।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि आर में अन्य सामान्य कार्य कैसे करें:
आर में ट्रिम किए गए माध्य की गणना कैसे करें
आर में भारित औसत की गणना कैसे करें
आर में प्रत्येक पंक्ति में अधिकतम मान की गणना कैसे करें