آر پروگرامنگ میں افعال (مثال کے ساتھ)

R میں فنکشن کیا ہے؟

TO فنکشن ، ایک پروگرامنگ ماحول میں ، ہدایات کا ایک مجموعہ ہے۔ ایک پروگرامر بچنے کے لیے ایک فنکشن بناتا ہے۔ دہراتے ہوئے ایک ہی کام ، یا کم پیچیدگی

ایک فنکشن ہونا چاہیے۔

  • ایک مخصوص کام انجام دینے کے لیے لکھا گیا۔
  • دلائل شامل ہو سکتے ہیں یا نہیں۔
  • جسم پر مشتمل ہے
  • ایک یا زیادہ اقدار واپس کر سکتے ہیں یا نہیں۔

فنکشن کے لیے عمومی نقطہ نظر دلیل کے حصے کو بطور استعمال کرنا ہے۔ آدانوں ، کھانا کھلانا جسم حصہ اور آخر میں واپس پیداوار . ایک فنکشن کا نحو درج ذیل ہے: | _+_ |

اس سبق میں ، ہم سیکھیں گے۔

R اہم بلٹ ان افعال۔

آر میں بہت سارے بلٹ ان فنکشن موجود ہیں۔ R آپ کے ان پٹ پیرامیٹرز کو اس کے فنکشن دلائل سے میل کھاتا ہے ، یا تو قیمت کے لحاظ سے یا پوزیشن کے مطابق ، پھر فنکشن باڈی کو چلاتا ہے۔ فنکشن دلائل کی ڈیفالٹ ویلیوز ہو سکتی ہیں: اگر آپ ان دلائل کی وضاحت نہیں کرتے ہیں تو R ڈیفالٹ ویلیو لے گا۔

نوٹ : کنسول میں فنکشن کا نام خود چلا کر کسی فنکشن کا سورس کوڈ دیکھنا ممکن ہے۔

ہم فنکشن کے تین گروپس کو ایکشن میں دیکھیں گے۔

  • عام فنکشن
  • ریاضی کی تقریب
  • شماریاتی فنکشن

عمومی افعال

ہم پہلے ہی عام افعال جیسے cbind () ، rbind () ، range () ، sort () ، order () افعال سے واقف ہیں۔ ان افعال میں سے ہر ایک کا ایک مخصوص کام ہوتا ہے ، آؤٹ پٹ واپس کرنے کے لیے دلائل لیتے ہیں۔ مندرجہ ذیل اہم افعال ہیں جن کے بارے میں جاننا ضروری ہے-

diff () فنکشن۔

اگر آپ کام کرتے ہیں۔ وقت کا سلسلہ ، آپ کو ان کی سیریز لے کر اسٹیشنری کرنے کی ضرورت ہے۔ پیچھے رہ جانے والی اقدار . TO ساکن عمل وقت کے ساتھ مستقل وسط ، تغیر اور خود کشی کی اجازت دیتا ہے۔ یہ بنیادی طور پر ایک ٹائم سیریز کی پیشن گوئی کو بہتر بناتا ہے۔ یہ فنکشن diff () کے ساتھ آسانی سے کیا جا سکتا ہے۔ ہم ایک ٹرینڈ کے ساتھ بے ترتیب ٹائم سیریز کا ڈیٹا بناسکتے ہیں اور پھر سیریز کو اسٹیشنری کرنے کے لیے فنکشن diff () استعمال کرسکتے ہیں۔ diff () فنکشن ایک دلیل ، ایک ویکٹر کو قبول کرتا ہے ، اور مناسب وقفہ اور تکرار شدہ فرق کو واپس کرتا ہے۔

نوٹ : ہمیں اکثر بے ترتیب ڈیٹا بنانے کی ضرورت ہوتی ہے ، لیکن سیکھنے اور موازنہ کے لیے ہم چاہتے ہیں کہ مشینوں میں نمبر ایک جیسے ہوں۔ اس بات کو یقینی بنانے کے لیے کہ ہم سب ایک جیسا ڈیٹا تیار کرتے ہیں ، ہم set.seed () فنکشن کو 123 کی صوابدیدی اقدار کے ساتھ استعمال کرتے ہیں۔ تعداد کی. اگر ہم set.seed () فنکشن استعمال نہیں کرتے ہیں تو ہم سب کی تعدادوں کی ترتیب مختلف ہوگی۔ | _+_ |

لمبائی () فنکشن

بہت سے معاملات میں ، ہم جاننا چاہتے ہیں۔ لمبائی ایک ویکٹر کا حساب کے لیے یا ایک لوپ میں استعمال کیا جائے۔ length () فنکشن ویکٹر x میں قطاروں کی تعداد شمار کرتا ہے۔ درج ذیل کوڈز کاروں کا ڈیٹاسیٹ درآمد کرتے ہیں اور قطاروں کی تعداد لوٹاتے ہیں۔

نوٹ : length () ویکٹر میں عناصر کی تعداد لوٹاتا ہے۔ اگر فنکشن کو میٹرکس یا ڈیٹا فریم میں منتقل کیا جاتا ہے تو ، کالموں کی تعداد واپس کردی جاتی ہے۔ | _+_ |

آؤٹ پٹ:

 function (arglist) { #Function body } 
 set.seed(123) ## Create the data x = rnorm(1000) ts <- cumsum(x) ## Stationary the serie diff_ts <- diff(ts) par(mfrow=c(1,2)) ## Plot the series plot(ts, type='l') plot(diff(ts), type='l') 

آؤٹ پٹ:

 dt <- cars ## number columns length(dt) 

ریاضی کے افعال

R میں ریاضی کے افعال کی ایک صف ہے۔

آپریٹرتفصیل
abs (x)x کی مطلق قیمت لیتا ہے۔
لاگ (x ، بیس = y)بیس y کے ساتھ x کا لوگرتھم لیتا ہے۔ اگر بنیاد متعین نہیں ہے تو ، قدرتی لوگرتھم لوٹاتا ہے۔
میعاد (x)ایکس کا ایکسونینشل لوٹاتا ہے۔
sqrt (x)x کا مربع جڑ لوٹاتا ہے۔
فیکٹریئل (x)x (x!) کا فیکٹریئل لوٹاتا ہے
## [1] 1

آؤٹ پٹ:

 ## number rows length(dt[,1]) 
## [1] 50
 # sequence of number from 44 to 55 both including incremented by 1 x_vector <- seq(45,55, by = 1) #logarithm log(x_vector) 

آؤٹ پٹ:

 ## [1] 3.806662 3.828641 3.850148 3.871201 3.891820 3.912023 3.931826 ## [8] 3.951244 3.970292 3.988984 4.007333
 #exponential exp(x_vector) 

آؤٹ پٹ:

 #squared root sqrt(x_vector) 

شماریاتی افعال

R معیاری تنصیب شماریاتی افعال کی وسیع رینج پر مشتمل ہے۔ اس ٹیوٹوریل میں ، ہم مختصر طور پر سب سے اہم فنکشن پر نظر ڈالیں گے۔

بنیادی شماریاتی افعال

آپریٹر

تفصیل

مطلب (x)

ایکس کا مطلب

میڈین (x)

ایکس کا میڈین

وہاں (x)

ایکس کی تبدیلی

ایس ڈی (ایکس)

ایکس کا معیاری انحراف۔

پیمانے (x)

ایکس کے معیاری اسکور (زیڈ اسکور)

مقدار (x)

ایکس کے چوتھائی۔

خلاصہ (x)

ایکس کا خلاصہ: مطلب ، منٹ ، زیادہ سے زیادہ وغیرہ۔

## [1] 6.708204 6.782330 6.855655 6.928203 7.000000 7.071068 7.141428 ## [8] 7.211103 7.280110 7.348469 7.416198

آؤٹ پٹ:

 #factorial factorial(x_vector) 
 ## [1] 1.196222e+56 5.502622e+57 2.586232e+59 1.241392e+61 6.082819e+62 ## [6] 3.041409e+64 1.551119e+66 8.065818e+67 4.274883e+69 2.308437e+71 ## [11] 1.269640e+73

آؤٹ پٹ:

 speed <- dt$speed speed # Mean speed of cars dataset mean(speed) 
## [1] 15.4

آؤٹ پٹ:

 # Median speed of cars dataset median(speed) 
## [1] 15

آؤٹ پٹ:

 # Variance speed of cars dataset var(speed) 
## [1] 27.95918

آؤٹ پٹ:

 # Standard deviation speed of cars dataset sd(speed) 
## [1] 5.287644

آؤٹ پٹ:

 # Standardize vector speed of cars dataset head(scale(speed), 5) 
 ## [,1] ## [1,] -2.155969 ## [2,] -2.155969 ## [3,] -1.588609 ## [4,] -1.588609 ## [5,] -1.399489

آؤٹ پٹ:

 # Quantile speed of cars dataset quantile(speed) 

اس مقام تک ، ہم نے بہت سارے R بلٹ ​​ان افعال سیکھے ہیں۔

نوٹ : دلیل کی کلاس سے محتاط رہیں ، یعنی عددی ، بولین یا تار۔ مثال کے طور پر ، اگر ہمیں سٹرنگ ویلیو پاس کرنے کی ضرورت ہے تو ہمیں اسٹرنگ کو کوٹیشن مارک میں بند کرنے کی ضرورت ہے: 'ABC'۔

R میں فنکشن لکھیں۔

کچھ موقعوں پر ، ہمیں اپنا فنکشن لکھنے کی ضرورت ہوتی ہے کیونکہ ہمیں ایک خاص کام پورا کرنا ہوتا ہے اور کوئی تیار شدہ فنکشن موجود نہیں ہوتا ہے۔ صارف کی وضاحت کردہ فنکشن میں شامل ہوتا ہے a نام ، دلائل اور ایک جسم .

 ## 0% 25% 50% 75% 100% ## 4 12 15 19 25 

نوٹ : ایک اچھا عمل یہ ہے کہ صارف کے متعین فنکشن کو بلٹ ان فنکشن سے مختلف نام دیا جائے۔ یہ الجھن سے بچتا ہے۔

ایک دلیل فنکشن۔

اگلے ٹکڑے میں ، ہم ایک سادہ مربع فنکشن کی وضاحت کرتے ہیں۔ فنکشن ایک ویلیو کو قبول کرتا ہے اور ویلیو کا اسکوائر لوٹاتا ہے۔ | _+_ |

کوڈ کی وضاحت:

  • تقریب کا نام square_function ہے۔ اسے ہم جو چاہیں کہہ سکتے ہیں۔
  • یہ ایک دلیل 'n' حاصل کرتا ہے۔ ہم متغیر کی قسم کی وضاحت نہیں کی تاکہ صارف ایک عدد ، ایک ویکٹر یا ایک میٹرکس پاس کر سکے۔
  • فنکشن ان پٹ 'n' لیتا ہے اور ان پٹ کا مربع لوٹاتا ہے۔

    جب آپ فنکشن کا استعمال کر لیتے ہیں تو ہم اسے rm () فنکشن سے ہٹا سکتے ہیں۔

# فنکشن بنانے کے بعد۔

 # Summary speed of cars dataset summary(speed) 

کنسول پر ، ہم ایک غلطی کا پیغام دیکھ سکتے ہیں: Error: object 'square_function' نہیں پایا گیا کہ فنکشن موجود نہیں ہے۔

ماحولیاتی دائرہ کار۔

R میں ، ماحول ایک ھے مجموعہ افعال ، متغیرات ، ڈیٹا فریم وغیرہ جیسی اشیاء کی

R ہر بار Rstudio کے اشارے پر ایک ماحول کھولتا ہے۔

اعلی سطح کا ماحول دستیاب ہے۔ عالمی ماحول ، جسے R_GlobalEnv کہا جاتا ہے۔ اور ہمارے پاس ہے۔ مقامی ماحول

ہم موجودہ ماحول کے مواد کی فہرست بنا سکتے ہیں۔ | _+_ |

آؤٹ پٹ۔

 ## Min. 1st Qu. Median Mean 3rd Qu. Max. ## 4.0 12.0 15.0 15.4 19.0 25.0

آپ R_GlobalEnv میں بنائے گئے تمام متغیرات اور فنکشن دیکھ سکتے ہیں۔

مذکورہ فہرست آپ کے لیے تاریخی کوڈ کی بنیاد پر مختلف ہوگی جو آپ آر اسٹوڈیو میں چلاتے ہیں۔

نوٹ کریں کہ n ، square_function فنکشن کی دلیل ہے۔ اس عالمی ماحول میں نہیں۔ .

TO نئی ہر فنکشن کے لیے ماحول بنایا جاتا ہے۔ مندرجہ بالا مثال میں ، فنکشن square_function () عالمی ماحول کے اندر ایک نیا ماحول پیدا کرتا ہے۔

کے درمیان فرق واضح کرنے کے لیے۔ عالمی اور مقامی ماحول ، آئیے مندرجہ ذیل مثال کا مطالعہ کریں۔

یہ فنکشن ایک ویلیو x کو بطور دلیل لیتا ہے اور اسے y اور فنکشن کے باہر اور اندر کی وضاحت میں شامل کرتا ہے۔

فنکشن f آؤٹ پٹ 15 کو واپس کرتا ہے۔ اس کی وجہ یہ ہے کہ y کی وضاحت عالمی ماحول میں کی گئی ہے۔ عالمی ماحول میں بیان کردہ کوئی بھی متغیر مقامی طور پر استعمال کیا جا سکتا ہے۔ متغیر y تمام فنکشن کالز کے دوران 10 کی قیمت رکھتا ہے اور کسی بھی وقت قابل رسائی ہے۔

آئیے دیکھیں کہ کیا ہوتا ہے اگر متغیر y فنکشن کے اندر متعین ہو۔

ہمیں rm r کا استعمال کرتے ہوئے اس کوڈ کو چلانے سے پہلے `y` چھوڑنے کی ضرورت ہے۔

جب ہم f (5) پر کال کرتے ہیں تو آؤٹ پٹ بھی 15 ہوتی ہے لیکن جب ہم قیمت y پرنٹ کرنے کی کوشش کرتے ہیں تو غلطی لوٹ آتی ہے۔ متغیر y عالمی ماحول میں نہیں ہے۔

آخر میں ، R کسی فنکشن کے جسم کے اندر سے گزرنے کے لیے حالیہ متغیر تعریف استعمال کرتا ہے۔ آئیے درج ذیل مثال پر غور کریں:

R فنکشن کے باہر بیان کردہ y اقدار کو نظر انداز کرتا ہے کیونکہ ہم نے فنکشن کے جسم کے اندر واضح طور پر ایک y متغیر بنایا ہے۔

کثیر دلائل فنکشن

ہم ایک سے زیادہ دلائل کے ساتھ ایک فنکشن لکھ سکتے ہیں۔ 'اوقات' نامی فنکشن پر غور کریں۔ یہ ایک سیدھا سیدھا کام ہے جو دو متغیرات کو ضرب دیتا ہے۔ | _+_ |

آؤٹ پٹ:

 function.name <- function(arguments) { computations on the arguments some other code } 

ہمیں فنکشن کب لکھنا چاہیے؟

ڈیٹا سائنسدان کو کئی بار دہرانے والے کام کرنے کی ضرورت ہے۔ زیادہ تر وقت ، ہم بار بار کوڈ کے ٹکڑوں کو کاپی اور پیسٹ کرتے ہیں۔ مثال کے طور پر ، مشین لرننگ الگورتھم چلانے سے پہلے متغیر کو معمول پر لانے کی انتہائی سفارش کی جاتی ہے۔ متغیر کو معمول پر لانے کا فارمولا یہ ہے:

ہم پہلے ہی جانتے ہیں کہ R میں min () اور max () فنکشن کا استعمال کیسے کریں۔ ہم ڈیٹا فریم بنانے کے لیے ٹبل لائبریری کا استعمال کرتے ہیں۔ شروع سے ڈیٹا سیٹ بنانے کے لیے ٹبل اب تک کا سب سے آسان فنکشن ہے۔ | _+_ |

ہم اوپر بیان کردہ فنکشن کی گنتی کے لیے دو مراحل میں آگے بڑھیں گے۔ پہلے مرحلے میں ، ہم ایک متغیر بنائیں گے جسے c1_norm کہا جاتا ہے جو c1 کو بچانا ہے۔ مرحلہ دو میں ، ہم صرف c1_norm کا کوڈ کاپی اور پیسٹ کرتے ہیں اور c2 اور c3 کے ساتھ تبدیل کرتے ہیں۔

کالم C1 کے ساتھ فنکشن کی تفصیل:

نامزد:: data_frame $ c1 -min (data_frame $ c1))

ڈومینیٹر: زیادہ سے زیادہ (data_frame $ c1) -min (data_frame $ c1))

لہذا ، ہم کالم c1: | _+_ | کی نارمل قیمت حاصل کرنے کے لیے انہیں تقسیم کر سکتے ہیں۔

ہم c1_norm ، c2_norm اور c3_norm: | _+_ | بنا سکتے ہیں۔

آؤٹ پٹ:

 square_function<- function(n) { # compute the square of integer `n` n^2 } # calling the function and passing value 4 square_function(4) 

یہ کام کرتا ہے. ہم کاپی اور پیسٹ کر سکتے ہیں | _+_ |

پھر c1_norm کو c2_norm اور c1 کو c2 میں تبدیل کریں۔ ہم c3_norm | _+_ | بنانے کے لیے بھی ایسا ہی کرتے ہیں۔

ہم نے متغیرات c1 ، c2 اور c3 کو مکمل طور پر بحال کیا۔

تاہم ، یہ طریقہ غلطی کا شکار ہے۔ ہم کاپی کر سکتے ہیں اور پیسٹ کرنے کے بعد کالم کا نام تبدیل کرنا بھول سکتے ہیں۔ لہذا ، ایک اچھا عمل یہ ہے کہ ہر دفعہ ایک فنکشن لکھیں جب آپ کو ایک ہی کوڈ کو دو بار سے زیادہ پیسٹ کرنے کی ضرورت ہو۔ ہم کوڈ کو ایک فارمولے میں دوبارہ ترتیب دے سکتے ہیں اور جب بھی ضرورت ہو اسے کال کر سکتے ہیں۔ اپنا فنکشن لکھنے کے لیے ہمیں دینے کی ضرورت ہے:

  • نام: معمول پر لانا۔
  • دلائل کی تعداد: ہمیں صرف ایک دلیل کی ضرورت ہے ، جو وہ کالم ہے جسے ہم اپنی گنتی میں استعمال کرتے ہیں۔
  • جسم: یہ صرف فارمولا ہے جسے ہم واپس کرنا چاہتے ہیں۔

فنکشن کو معمول پر لانے کے لیے ہم قدم بہ قدم آگے بڑھیں گے۔

مرحلہ نمبر 1) ہم تخلیق کرتے ہیں۔ ا میدوار ، کونسا . R میں ، ہم نامزد کرنے والے کو اس طرح متغیر میں محفوظ کر سکتے ہیں: | _+_ |

مرحلہ 2) ہم حساب کرتے ہیں فرق: . ہم مرحلہ 1 کے خیال کو نقل کر سکتے ہیں اور حساب کو ایک متغیر میں محفوظ کر سکتے ہیں: | _+_ |

مرحلہ 3) ہم نامزد کرنے والے اور فرق کرنے والے کے درمیان تقسیم کرتے ہیں۔ | _+_ |

مرحلہ 4) کالنگ فنکشن میں ویلیو واپس کرنے کے لیے ہمیں فنکشن کا آؤٹ پٹ حاصل کرنے کے لیے ریٹرن () کے اندر نارملائز کرنا ہوگا۔ | _+_ |

مرحلہ 5) ہم ہر چیز کو بریکٹ کے اندر لپیٹ کر فنکشن کو استعمال کرنے کے لیے تیار ہیں۔ | _+_ |

آئیے اپنے فنکشن کو متغیر c1: | _+_ | سے جانچیں۔

یہ بالکل کام کرتا ہے۔ ہم نے اپنا پہلا فنکشن بنایا۔

افعال تکراری کام انجام دینے کا زیادہ جامع طریقہ ہے۔ ہم مختلف کالموں پر نارملائز فارمولہ استعمال کر سکتے ہیں ، جیسے: | _+_ |

اگرچہ مثال سادہ ہے ، ہم ایک فارمولے کی طاقت کا اندازہ لگا سکتے ہیں۔ مذکورہ کوڈ کو پڑھنا آسان ہے اور خاص طور پر کوڈ چسپاں کرتے وقت غلطیوں سے بچیں۔

حالت کے ساتھ افعال۔

بعض اوقات ، ہمیں حالات کو ایک فنکشن میں شامل کرنے کی ضرورت ہوتی ہے تاکہ کوڈ کو مختلف آؤٹ پٹ واپس کرنے کی اجازت دی جاسکے۔

مشین لرننگ ٹاسک میں ، ہمیں ڈیٹاسیٹ کو ٹرین سیٹ اور ٹیسٹ سیٹ کے درمیان تقسیم کرنے کی ضرورت ہے۔ ٹرین سیٹ الگورتھم کو ڈیٹا سے سیکھنے کی اجازت دیتی ہے۔ ہمارے ماڈل کی کارکردگی کو جانچنے کے لیے ، ہم کارکردگی کا پیمانہ واپس کرنے کے لیے ٹیسٹ سیٹ استعمال کر سکتے ہیں۔ R کے پاس دو ڈیٹاسیٹ بنانے کا فنکشن نہیں ہے۔ ہم ایسا کرنے کے لیے اپنا فنکشن لکھ سکتے ہیں۔ ہمارا فنکشن دو دلائل لیتا ہے اور اس کو split_data () کہا جاتا ہے۔ پیچھے کا خیال آسان ہے ، ہم ڈیٹاسیٹ کی لمبائی (یعنی مشاہدات کی تعداد) کو 0.8 سے ضرب دیتے ہیں۔ مثال کے طور پر ، اگر ہم ڈیٹاسیٹ 80/20 کو تقسیم کرنا چاہتے ہیں ، اور ہمارے ڈیٹاسیٹ میں 100 قطاریں ہیں ، تو ہمارا فنکشن 0.8*100 = 80 سے ضرب دے گا۔

ہم اپنے صارف کے متعین فنکشن کو جانچنے کے لیے ایئر کوالٹی ڈیٹاسیٹ استعمال کریں گے۔ ایئر کوالٹی ڈیٹاسیٹ میں 153 قطاریں ہیں۔ ہم اسے نیچے کوڈ کے ساتھ دیکھ سکتے ہیں: | _+_ |

آؤٹ پٹ:

rm(square_function) square_function

ہم ذیل میں آگے بڑھیں گے: | _+_ |

ہمارے فنکشن کے دو دلائل ہیں۔ دلائل ٹرین ایک بولین پیرامیٹر ہے۔ اگر یہ TRUE پر سیٹ ہے تو ہمارا فنکشن ٹرین ڈیٹاسیٹ بناتا ہے ورنہ یہ ٹیسٹ ڈیٹاسیٹ بناتا ہے۔

ہم اس طرح آگے بڑھ سکتے ہیں جیسے ہم نے () فنکشن کو نارمل کیا۔ ہم کوڈ کو اس طرح لکھتے ہیں جیسے یہ صرف ایک وقت کا کوڈ ہو اور پھر فنکشن بنانے کے لیے ہر چیز کو شرط کے ساتھ جسم میں لپیٹ دیں۔

مرحلہ نمبر 1:

ہمیں ڈیٹاسیٹ کی لمبائی کا حساب کرنے کی ضرورت ہے۔ یہ فنکشن nrow () کے ساتھ کیا جاتا ہے۔ نیرو ڈیٹاسیٹ میں قطاروں کی کل تعداد لوٹاتا ہے۔ ہم متغیر لمبائی کہتے ہیں۔ | _+_ |

آؤٹ پٹ:

ls(environment())

مرحلہ 2:

ہم لمبائی کو 0.8 سے ضرب دیتے ہیں۔ یہ منتخب کرنے کے لیے قطاروں کی تعداد لوٹائے گا۔ یہ 153*0.8 = 122.4 | _+_ | ہونا چاہیے۔

آؤٹ پٹ:

## [1] 'diff_ts' 'dt' 'speed' 'square_function' ## [5] 'ts' 'x' 'x_vector'

ہم ایئر کوالٹی ڈیٹاسیٹ میں 153 قطاروں میں سے 122 قطاریں منتخب کرنا چاہتے ہیں۔ ہم ایک فہرست بناتے ہیں جس میں 1 سے total_row تک کی اقدار ہوتی ہیں۔ ہم نتیجہ کو متغیر میں ذخیرہ کرتے ہیں اسپلٹ | _+_ |

آؤٹ پٹ:

 times <- function(x,y) { x*y } times(2,4) 

تقسیم ڈیٹا سیٹ سے پہلی 122 قطار کا انتخاب کرتی ہے۔ مثال کے طور پر ، ہم دیکھ سکتے ہیں کہ ہماری متغیر تقسیم قیمت 1 ، 2 ، 3 ، 4 ، 5 اور اسی طرح جمع کرتی ہے۔ یہ اقدار انڈیکس ہوں گی جب ہم واپسی کے لیے قطاریں منتخب کریں گے۔

مرحلہ 3:

ہمیں تقسیم شدہ متغیر میں محفوظ اقدار کی بنیاد پر ایئر کوالٹی ڈیٹاسیٹ میں قطاریں منتخب کرنے کی ضرورت ہے۔ یہ اس طرح کیا جاتا ہے: | _+_ |

آؤٹ پٹ:

## [1] 8

مرحلہ 4:

ہم باقی قطاروں ، 123: 153 کا استعمال کرکے ٹیسٹ ڈیٹاسیٹ بنا سکتے ہیں۔ یہ استعمال کرکے کیا جاتا ہے - تقسیم کے سامنے۔ | _+_ |

آؤٹ پٹ:

 library(tibble) # Create a data frame data_frame <- tibble( c1 = rnorm(50, 5, 1.5), c2 = rnorm(50, 5, 1.5), c3 = rnorm(50, 5, 1.5), ) 

مرحلہ 5:

ہم فنکشن کے جسم کے اندر کی حالت بنا سکتے ہیں۔ یاد رکھیں ، ہمارے پاس ایک دلیل ٹرین ہے جو ٹرین سیٹ کو واپس کرنے کے لیے بولیئن سیٹ ڈیفالٹ ہے۔ کنڈیشن بنانے کے لیے ، ہم if syntax: | _+_ | استعمال کرتے ہیں۔

یہ ہے ، ہم فنکشن لکھ سکتے ہیں۔ ہمیں صرف ایئر کوالٹی کو ڈی ایف میں تبدیل کرنے کی ضرورت ہے کیونکہ ہم اپنے فنکشن کو کسی بھی ڈیٹا فریم میں آزمانا چاہتے ہیں ، نہ صرف ایئر کوالٹی: | _+_ |

آئیے اپنے فنکشن کو ایئر کوالٹی ڈیٹاسیٹ پر آزمائیں۔ ہمارے پاس 122 قطاروں کے ساتھ ایک ٹرین سیٹ اور 31 قطاروں کے ساتھ ایک ٹیسٹ سیٹ ہونا چاہیے۔ | _+_ |

آؤٹ پٹ:

(data_frame$c1 -min(data_frame$c1))/(max(data_frame$c1)-min(data_frame$c1)) 
 Create c1_norm: rescaling of c1 data_frame$c1_norm <- (data_frame$c1 -min(data_frame$c1))/(max(data_frame$c1)-min(data_frame$c1)) # show the first five values head(data_frame$c1_norm, 5) 

آؤٹ پٹ:

## [1] 0.3400113 0.4198788 0.8524394 0.4925860 0.5067991