ওয়েব অ্যাপস

উদাহরণ সহ R-এ apply(), lapply(), saply(), tapply() ফাংশন বোঝা

30 অক্টোবর, 2021

পরিসংখ্যানগত কম্পিউটিং এবং R. তে পরিসংখ্যানগত সফ্টওয়্যার বিকাশের জন্য বহুল ব্যবহৃত প্রোগ্রামিং ভাষাগুলির মধ্যে একটি। আর প্রোগ্রামিং ভাষা GNU জেনারেল পাবলিক লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত। এটি ইন্টারফেস পরিচালনার জন্য সমস্ত প্রোগ্রাম আছে, বলা হয় কমান্ড লাইন ইন্টারফেস . উপরন্তু, R প্রোগ্রামিং ভাষা অন্যান্য গ্রাফিকাল ইউজার ইন্টারফেসের সাথে একত্রিত হয়, যেমন আর স্টুডিও , জুপিটার নোটবই. আপনি এই নিবন্ধে R-এর কিছু উল্লেখযোগ্য ফাংশন শিখবেন, যেমন apply(), ট্যাপলাই(), ল্যাপ্লি(), এবং সাপ্লাই()।

সুচিপত্র

আর প্রোগ্রামিং ভাষা কি?

1993 সালে, R নামক প্রোগ্রামিং ভাষা অস্তিত্বে আসে। রস ইহাকা এবং রবার্ট জেন্টলম্যান R প্রোগ্রামিং ভাষা ডিজাইন করেছেন। আর প্রোগ্রামিং ভাষা হল এস প্রোগ্রামিং ভাষার আধুনিক সংস্করণ। দ্য এস প্রোগ্রামিং ভাষা পরিসংখ্যানগত কম্পিউটিংয়ের জন্যও তৈরি করা হয়েছিল। রস এবং রবার্টের নামের উপর ভিত্তি করে প্রোগ্রামিং ভাষায় R নামটি দেওয়া হয়েছে।

যেহেতু R প্রোগ্রামিং ভাষা বিশেষভাবে পরিসংখ্যান এবং গ্রাফিক্সের জন্য ডিজাইন করা হয়েছে, এটি বিভিন্ন পরিসংখ্যান এবং গ্রাফিকাল পদ্ধতি অন্তর্ভুক্ত করে। এই পদ্ধতিগুলির মধ্যে রয়েছে শ্রেণিবিন্যাস, ক্লাস্টারিং, লিনিয়ার মডেলিং, নন-লিনিয়ার মডেলিং এবং অন্যান্য অনেক কৌশল। আর প্রোগ্রামিং ল্যাঙ্গুয়েজের উল্লেখযোগ্য সুবিধা হল এটি রয়েছে অবজেক্ট ওরিয়েন্টেড অন্যান্য পরিসংখ্যানগত প্রোগ্রামিং ভাষার তুলনায় সুবিধা।

আসুন জেনে নিই কিভাবে প্রোগ্রামটি R প্রোগ্রামিং ল্যাঙ্গুয়েজে এক্সিকিউট করা হয়। এটিতে একটি R কমান্ড প্রম্পট রয়েছে যা যেকোনো কোড বা কোডের একটি লাইন চালায়। ধরুন একজন ব্যবহারকারীকে R কমান্ড প্রম্পটে 2+2 গণনা করতে হবে। এটি ফলাফল 4 প্রদর্শন করবে, যেমনটি নীচে দেখানো হয়েছে:

|_+_|

এখানে, প্রতিটি উপাদানকে একক ভেক্টর হিসাবে বিবেচনা করা হয়। অতএব, 2+2 দুটি ভিন্ন ভেক্টর জড়িত, প্রতিটির মান 2 আছে। আউটপুটের দিকে তাকালে, এটি প্রকৃত আউটপুটের আগে [1] প্রদর্শন করে, 4. [1] একটি ভেক্টরের উপাদানের সংখ্যা উপস্থাপন করে।

R-এ ডেটা স্ট্রাকচার

আর প্রোগ্রামিং ভাষা ম্যাট্রিক্সের ব্যবহারকেও সমর্থন করে। এটি ডেটা স্ট্রাকচারকে সমর্থন করে, যেমন অ্যারে , ম্যাট্রিস, ভেক্টর, তালিকা , এবং ডেটা ফ্রেম।

স্যাপ্লাই
    অ্যারে:

আর প্রোগ্রামিং ভাষার অ্যারে ডেটা স্ট্রাকচার একই ধরনের ডেটা ধারণ করে। এটি দুই মাত্রার বেশি আকারে ডেটা সঞ্চয় করে। উদাহরণস্বরূপ, যদি আমরা একটি অ্যারে (3,5,4) সংজ্ঞায়িত করি, এটি 4টি ম্যাট্রিক্স তৈরি করে, যেখানে প্রতিটি ম্যাট্রিক্সে 3টি সারি এবং 5টি কলাম থাকবে। আপনি array() পদ্ধতি ব্যবহার করে R প্রোগ্রামিং ভাষায় একটি অ্যারে তৈরি করতে পারেন।

array() ফাংশন একটি অ্যারে তৈরি করে, যা একটি ভেক্টর হিসাবে বিবেচিত হয়। R-এ অ্যারে() ফাংশনের সিনট্যাক্স নিচে দেওয়া হল:

|_+_|

এখানে, nrow মানে সারির সংখ্যা, ncol মানে কলামের সংখ্যা, এবং nmat মানে ম্যাট্রিক্সের সংখ্যা।

আসুন R-এ একটি অ্যারে তৈরির উদাহরণ দেখি। নীচের কোডটি একটি 3*3 অ্যারে তৈরি করে।

|_+_|

আউটপুট:

|_+_|
[ , এক][, দুই][, 3]
[ , এক]3একদুই
[, দুই]649
[, 3]758
|_+_|
[ , এক][, দুই][, 3]
[ , এক]3একদুই
[, দুই]649
[, 3]758
    অ্যারে:

আর প্রোগ্রামিং ভাষায়, ম্যাট্রিক্স ডেটা স্ট্রাকচার দ্বি-মাত্রিক আয়তক্ষেত্রাকার আকারে ডেটা উপস্থাপন করে। ম্যাট্রিক্সে উপস্থিত সমস্ত উপাদান একই ডেটা প্রকারের। অ্যারে তৈরি করতে যেমন array() পদ্ধতি ব্যবহার করা হয়, ম্যাট্রিক্স() ফাংশনটি একটি ম্যাট্রিক্স তৈরি করতে ব্যবহৃত হয়।

ম্যাট্রিক্স সাধারণত গাণিতিক গণনার জন্য ব্যবহৃত হয়। যাইহোক, এটি অক্ষরের মানগুলির পাশাপাশি যৌক্তিক মানও নিতে পারে। কিন্তু, এই মানগুলি সাধারণত ম্যাট্রিসে ব্যাপকভাবে ব্যবহৃত হয় না। R-এ ম্যাট্রিক্স() ফাংশনের সিনট্যাক্স নিম্নরূপ দেওয়া হয়েছে:

|_+_|

এখানে, ডেটাকে একটি ভেক্টর হিসাবে বিবেচনা করা হয়, যা ম্যাট্রিক উপাদান নিয়ে গঠিত। অন্য আর্গুমেন্ট, nrow, সারির সংখ্যা বোঝায় এবং ncol মানে কলামের সংখ্যা। শেষ আর্গুমেন্ট, dimnames, সারি এবং কলামের নাম উপস্থাপন করে। ম্যাট্রিক্স() এর অনন্য আর্গুমেন্ট হল বাইরো, যা একটি যৌক্তিক মান। বাইরোটি সত্য হলে, সমস্ত ভেক্টর উপাদান একটি সারি বিন্যাসে উপস্থাপিত হয়।

নীচের উদাহরণ যা আপনাকে ম্যাট্রিক্স বাস্তবায়নে সাহায্য করবে।

|_+_|

আউটপুট:

[ , এক][, দুই][, 3]
[ , এক]456
[, দুই]789
[, 3]10এগারো12
[ , এক][, দুই][, 3]
[ , এক]4710
[, দুই]58এগারো
[, 3]6912
col1col2col3
সারি 1456
সারি 2789
সারি310এগারো12
    ভেক্টর:

একটি ভেক্টর হল R প্রোগ্রামিং ভাষার একটি খুব মৌলিক ডেটা কাঠামো। এটি ছয়টি স্বতন্ত্র ডেটা টাইপ মান সমর্থন করে, যেমন পূর্ণসংখ্যা, দ্বিগুণ, জটিল, অক্ষর, কাঁচা এবং যৌক্তিক। ভেক্টর ডেটা স্ট্রাকচারে, আপনি একাধিক উপাদানের একটি একক উপাদান অন্তর্ভুক্ত করতে পারেন। আসুন আমরা একটি ভেক্টরে একক এবং একাধিক উপাদানের উদাহরণ দেখি।

আরো দেখুন 23টি সেরা ফ্রি ফাইল শেয়ারিং ওয়েবসাইট

একক-উপাদান:

|_+_|

বহু-উপাদান:

|_+_|
    তালিকা:

একটি তালিকা ডেটা স্ট্রাকচার যেকোনো ডেটা টাইপকে একত্রে ধরে রাখতে পারে, যেমন পূর্ণসংখ্যা, স্ট্রিং, ভেক্টর ইত্যাদি। একটি তালিকার ভিতরে একটি তালিকা থাকা সম্ভব। একটি তালিকা ডেটা স্ট্রাকচারের একটি বিস্ময়কর বৈশিষ্ট্য হল এটির ভিতরে একটি ম্যাট্রিক্স বা যেকোনো ফাংশন থাকতে পারে। আমরা list() ফাংশন ব্যবহার করে R প্রোগ্রামিং ভাষায় একটি তালিকা তৈরি করি।

R-এ তালিকার সিনট্যাক্স নিচে দেওয়া হল:

|_+_|

এখানে, x হল তালিকার একটি বস্তু, এবং মানটি তালিকার x বস্তুর উপাদানগুলিকে উপস্থাপন করে। আসুন R-এ একটি তালিকার উদাহরণ দেখি।

|_+_|

আউটপুট:

|_+_|
    ডেটা ফ্রেম:

ডাটা ফ্রেম হল আর প্রোগ্রামিং ল্যাঙ্গুয়েজের আরেকটি ডাটা স্ট্রাকচার। এটি সারণী বিন্যাসে উপস্থাপিত হয়। অন্য কথায়, এটিকে দ্বি-মাত্রিক ম্যাট্রিক্স হিসাবে বিবেচনা করা যেতে পারে, যেখানে কলামের মান যেকোনো ধরনের হতে পারে। data.frame() নামক ফাংশনটি ডেটা ফ্রেম গঠন তৈরি করতে ব্যবহৃত হয়।

R-এ ডেটা ফ্রেম কীভাবে তৈরি হয় তা বোঝার জন্য আসুন একটি উদাহরণ চিত্রিত করি।

|_+_|

আউটপুট:

|_+_|

কেন R apply() ফ্যামিলি ফাংশন ব্যবহার করবেন?

প্রোগ্রামিং এ, আমরা a ব্যবহার করি লুপের জন্য পুনরাবৃত্তির জন্য তবে লুপ ব্যবহারের কিছু বিরূপ প্রভাব রয়েছে। আমরা ফর লুপে অবজেক্ট ব্যবহার করি। এই বস্তুগুলি কর্মক্ষেত্রের জন্য লুপের ভিতরে থাকে। কিছু লোকের এই বস্তুগুলির প্রয়োজন হতে পারে, আবার কেউ কেউ তাদের অবাঞ্ছিত হিসাবে বিবেচনা করতে পারে। একটি উদাহরণ সহ for loop এর পার্শ্বপ্রতিক্রিয়া আছে তা দেখা যাক।

|_+_|

এই কোড. প্রত্যাশিত আউটপুট কি? আপনি স্ট্রিং হিসাবে ফলাফল আশা করতে পারেন, 'ছায়ায় জ্বলজ্বল করছে...'। এই কোডটি চালানোর পরে, আপনি যে প্রকৃত ফলাফল পাবেন তা হল 5, লুপের জন্য 5টি পুনরাবৃত্তির জন্য।

আউটপুট:

|_+_|

প্রতিটি পুনরাবৃত্তির জন্য, পরিবর্তনশীল ‘গান’ ভেক্টর ‘গান’ থেকে মান নেয়।

ফর লুপের কারণে সৃষ্ট সমস্যাগুলি এড়াতে R প্রোগ্রামিং ভাষা আরেকটি শক্তিশালী লুপিং সিস্টেম চালু করে। নতুন লুপিং সিস্টেম পরিবার প্রয়োগ করা হয়. একটি অ্যাপ্লাই ফ্যামিলি হল ফাংশনের সংগ্রহ যার কোনো পার্শ্বপ্রতিক্রিয়া নেই যেমন লুপের মতো। একটি আবেদন পরিবারে অন্তর্ভুক্ত সাতটি ফাংশন আছে।

আবেদনের বৈশিষ্ট্য () পারিবারিক ফাংশন

এখানে apply() ফ্যামিলি ফাংশনের কিছু প্রয়োজনীয় বৈশিষ্ট্য রয়েছে। Apply() ফ্যামিলি ফাংশনের বিস্তারিত জানার আগে, আমরা কিছু প্রাথমিক বৈশিষ্ট্য বিবেচনা করব।

  1. Apply() পরিবারের প্রতিটি ফাংশনে দুটি আর্গুমেন্ট থাকে। apply() ফাংশনে পাস করা প্রথম আর্গুমেন্ট হল অবজেক্ট, এবং দ্বিতীয়টি হল ফাংশন। R কোনো প্রয়োগ() ফাংশনে পাস করার সময় একটি ফাংশনকে একটি আর্গুমেন্ট হিসেবে বিবেচনা করার বিধানের অনুমতি দেয়।
  2. Apply() ফ্যামিলি ফাংশন ব্যবহার করার একটি উল্লেখযোগ্য এবং প্রাথমিক বৈশিষ্ট্য হল কোডের কোন পার্শ্বপ্রতিক্রিয়া নেই।
  3. apply() ফাংশন যেকোনো ফাংশনে আর্গুমেন্ট পাস করতে ডট আর্গুমেন্ট ব্যবহার করে।
  4. যখনই আমরা কোনো apply() ফাংশন ব্যবহার করি, কোড চালানোর পর এটি কিছু আউটপুট প্রদান করে। প্রয়োগ () ফাংশন শুধুমাত্র প্রয়োজন হলেই ব্যবহার করুন। উদাহরণস্বরূপ, আপনি যদি প্রিন্ট() ফাংশন ব্যবহার করে কমান্ড প্রম্পটে ফলাফল পেতে চান, তাহলে apply() ফাংশন ব্যবহার করবেন না।

প্রথাগত লুপের উপর প্রয়োগ () ফাংশনের সুবিধা

যেকোন কোড বা কোড ব্লক প্রথাগত লুপের তুলনায় apply() ফাংশন দিয়ে দ্রুত কার্যকর করা হয়। R প্রোগ্রামিং ভাষায় বেশ কিছু বিল্ট-ইন প্যাকেজ পাওয়া যায়। R-এর প্যাকেজগুলির মধ্যে একটি হল গ্যামক্লাস, যার মধ্যে ফ্যাটালিটি অ্যানালাইসিস রেকর্ডিং সিস্টেম (FARS) ডেটাসেট রয়েছে। FARS ডেটাসেটে 15118টি পর্যবেক্ষণ সহ 17টি ভিন্ন বৈশিষ্ট্য রয়েছে।

Apply() ফাংশন এবং প্রচলিত লুপ পদ্ধতি ব্যবহার করে কোড চালানোর জন্য প্রয়োজনীয় সময় দেখার জন্য আমরা একটি উদাহরণ নেব। বিবেচনা করুন যে আমাদের প্রদত্ত ওজনের গড় খুঁজে বের করতে হবে। সুতরাং, আমরা for loop এবং apply() ফাংশন ব্যবহার করে একটি কোড তৈরি করব।

|_+_|

লুপ ব্যবহার করে:

প্রয়োগ () ফাংশন ব্যবহার করে:

|_+_|

apply() ফাংশন ব্যবহার করার জন্য লুপের চেয়ে কম কোড লাইন প্রয়োজন। প্রদত্ত ওজনের গড় গণনা করার জন্য আমাদের প্রয়োজনীয় সময় দেখতে হবে। অতএব, আমরা প্রফভিস নামে একটি অনন্য R এর প্যাকেজ ব্যবহার করব।

Provifs প্যাকেজের প্রাথমিক লক্ষ্য হল কোডের প্রতিটি নির্দেশের দ্বারা গ্রাস করা সময় এবং মেমরির একটি গ্রাফিক্যাল উপস্থাপনা। তাই, Provifs প্যাকেজ ব্যবহার করে আমরা for loop এবং apply() ফাংশন ব্যবহার করে ওজনের গড় গণনা করার জন্য প্রয়োজনীয় সময় জানতে সক্ষম হবে।

|_+_|

লুপ ব্যবহার করে:

উপরের কোডের আউটপুটে, আপনি লক্ষ্য করবেন যে লুপের জন্য প্রয়োজনীয় সময় প্রদর্শিত হবে।

|_+_|

কোডের লাইনটি কার্যকর করতে 30 ms লাগে।

|_+_|

কোডের এই লাইনটি কার্যকর করতে 1600 ms লাগে। অতএব, দুটি লাইন কার্যকর করার জন্য 1900 ms সময় নেয়।

|_+_|

প্রয়োগ () ফাংশন ব্যবহার করে:

উপরের কোড, লাইন

|_+_|

সম্পাদনের জন্য মাত্র 20 ms লাগে।

আরো দেখুন আমরা আউটলুক ডেটা ফাইল তৈরি করতে পারিনি তার জন্য 4 সমাধান

উপরের দুটি কোড এক্সিকিউশন থেকে, আমরা উপসংহারে পৌঁছেছি যে apply() ফাংশনটি লুপের ঐতিহ্যগত তুলনায় উপকারী এবং সময় সাশ্রয়ী। প্রয়োগ() ফাংশন ব্যবহার করাও সহজ, কারণ এতে কম কোড লাইন প্রয়োজন। আসুন এখন জেনে নেই বিভিন্ন apply() ফাংশন এবং তাদের বাস্তবায়ন।

apply() ফাংশন

আমরা R প্রোগ্রামিং ভাষার পাঁচটি ভিন্ন ডেটা স্ট্রাকচার অধ্যয়ন করেছি। apply() ফাংশন পাঁচটির মধ্যে দুটি ডেটা স্ট্রাকচার, ডেটা ফ্রেম এবং ম্যাট্রিক্স ব্যবহার করে। অন্য কথায়, ডাটা ফ্রেম এবং ম্যাট্রিক্স প্রয়োগ () ফাংশনে ইনপুট হিসাবে ব্যবহৃত হয়। apply() ফাংশনের আউটপুট একটি ভেক্টরে প্রকাশ করা হয়।

apply() ফাংশন হল অন্য সব ফাংশনের মৌলিক ফাংশন। এটি স্পষ্ট লুপ নির্মাণের সমস্যা এড়ায়। আসুন দেখি apply() ফাংশনে কোন আর্গুমেন্ট ব্যবহার করা হয়। নিচে সিনট্যাক্স আছে:

|_+_|

আসুন প্রতিটি apply() ফাংশনের আর্গুমেন্ট নিয়ে বিস্তারিত আলোচনা করি। প্রথম প্যারামিটার, X, একটি ম্যাট্রিক্স বা একটি অ্যারে বোঝায়। এরপর, মার্জিন দুটি মান 1 এবং 2 প্রতিনিধিত্ব করে, যা নির্দেশ করে যে কোন ডেটাতে প্রয়োগ() ব্যবহার করা উচিত।

MARGIN=1-এর জন্য, apply() ফাংশনটি সারিগুলিতে ব্যবহার করা উচিত, যেখানে, MARGIN=2-এর জন্য, কলামগুলিতে প্রয়োগ () ফাংশন প্রয়োগ করা উচিত৷ শেষ প্যারামিটার, FUN, প্রয়োগ করা ফাংশন প্রতিনিধিত্ব করে। আপনি যদি সারি এবং কলামে apply() ফাংশন ব্যবহার করতে চান তবে আপনাকে MARGIN = c(1,2) সংজ্ঞায়িত করতে হবে।

R প্রোগ্রামিং ল্যাঙ্গুয়েজে বেশ কিছু বিল্ট-ইন ফাংশন আছে, যেমন যোগফল, গড়, মধ্যমা, সর্বোচ্চ এবং মিন। আপনি ব্যবহারকারী-সংজ্ঞায়িত ফাংশন ব্যবহার করতে পারেন। আমরা এখন উদাহরণ দেখব যেখানে apply() ফাংশন ব্যবহার করা যেতে পারে। সমস্ত কলামে দুটি ম্যাট্রিক্স যোগ করার একটি উদাহরণ নিন।

|_+_|

কোডের উপরের লাইনে, আমরা ম্যাট্রিক্স p প্রদর্শন করেছি। সুতরাং, আউটপুট হবে:

[ ,এক][, দুই][, 3][, 4][, 5][.6]
[এক, ]এক6এক6এক6
[দুই,]দুই7দুই7দুই7
[৩, ]383838
[৪, ]494949
[৫, ]510510510

আমরা কলামের সমষ্টি সম্পাদন করেছি এবং আউটপুটটি নিম্নরূপ হবে:

আউটপুট:

|_+_|

lappaly () ফাংশন

apply() ফ্যামিলি ফাংশনের আরেকটি ফাংশন হল lapply() ফাংশন। lapply() ফাংশনে, আমরা তালিকাটিকে ইনপুট হিসাবে ব্যবহার করি এবং এটি আউটপুট হিসাবে একটি তালিকা তৈরি করে। আউটপুট তালিকার দৈর্ঘ্য ইনপুট তালিকার দৈর্ঘ্যের সমান। lapply() ফাংশনের প্রসঙ্গে, l একটি তালিকা বোঝায়। উপরন্তু, lapply() ফাংশন ইনপুট হিসাবে একটি ডেটা ফ্রেম এবং ভেক্টর নেয় এবং আউটপুট হিসাবে তালিকা তৈরি করে। নিচে lapply() ফাংশনের সিনট্যাক্স দেওয়া হল:

|_+_|

lapply() ফাংশন দুটি আর্গুমেন্ট নেয়। এখানে, X একটি বস্তু বা ভেক্টরকে বোঝায়, এবং FUN যেকোন ফাংশনকে উপস্থাপন করে যা বস্তুতে প্রয়োগ করা হবে।

apply() এবং lapply() ফাংশনের মধ্যে পার্থক্য:

  1. apply() ফাংশনে, প্রদত্ত ইনপুট হল ডেটা ফ্রেম এবং ম্যাট্রিক্স। অন্যদিকে, lapply() ফাংশন ইনপুট হিসাবে ডেটা ফ্রেম, তালিকা এবং ভেক্টর নেয়।
  2. apply() ফাংশনের আউটপুট একটি ভেক্টর হিসাবে উপস্থাপন করা হয়, যেখানে lapply() ফাংশনের আউটপুট তালিকা আকারে থাকে।
  3. lapply() ফাংশন মার্জিন আর্গুমেন্ট অন্তর্ভুক্ত করে না।

lapply() ফাংশন কিভাবে কাজ করে তা বোঝার জন্য আমরা একটি উদাহরণ নিই। এই উদাহরণে, আমরা বড় হাতের ম্যাট্রিক্সের স্ট্রিংকে ছোট হাতের অক্ষরে রূপান্তর করব।

|_+_|

ফলাফল:

|_+_|

আপনি unlist() ফাংশন ব্যবহার করে আপনার তালিকাটিকে একটি ভেক্টরে রূপান্তর করতে পারেন। আসুন জেনে নিই কিভাবে unlist() ফাংশন কাজ করে।

|_+_|

আউটপুট:

|_+_|

sapply() ফাংশন

apply() পরিবারের আরেকটি ফাংশন হল saply() ফাংশন। sapply() ফাংশন ভেক্টর বা ডেটা ফ্রেম ডেটা স্ট্রাকচারকে ইনপুট হিসেবে নেয় এবং ভেক্টর বা ম্যাট্রিক্স আকারে আউটপুট তৈরি করে। অতিরিক্তভাবে, saply() ফাংশন তালিকাটিকে ইনপুট হিসাবে নেয় এবং আউটপুট হিসাবে একই দৈর্ঘ্যের তালিকা তৈরি করে। lapply() এবং apply() ফাংশন একই রকম, কিন্তু শুধুমাত্র পার্থক্য হল apply() একটি ভেক্টর তৈরি করে।

নীচে saply() ফাংশনের সিনট্যাক্স রয়েছে:

|_+_|

সাপ্লাই() ফাংশন দুটি ইনপুট প্যারামিটার নেয়, এক্স এবং ফান। পরামিতি, X, একটি ভেক্টর বা একটি বস্তুকে বোঝায় এবং FUN মানে X এর সাথে ব্যবহার করা ফাংশন।

আরো দেখুন কিভাবে একটি পিসি বা মোবাইল ডিভাইসে জুম অডিও মিউট করবেন

প্রয়োগ() এবং সাপ্লাই() ফাংশনের মধ্যে পার্থক্য:

  1. apply() ফাংশন ইনপুট হিসাবে ডেটা ফ্রেম এবং একটি ম্যাট্রিক্স নেয়, যেখানে sapply() ফাংশন ইনপুট হিসাবে ডেটা ফ্রেম, ভেক্টর এবং তালিকা নেয়। lapply() ফাংশনটিও sapply() ফাংশনের মতো একই ইনপুট নেয়।
  2. এর পরে, apply() ফাংশনটি একটি ভেক্টর হিসাবে তার ফলাফল উপস্থাপন করে। অন্যদিকে, saply() ফাংশন একটি ভেক্টর এবং আউটপুট হিসাবে তালিকা তৈরি করে। lapply() ফাংশন শুধুমাত্র তালিকা হিসাবে আউটপুট আছে.
  3. lapply() ফাংশনের মতো, saply() ফাংশনের আর্গুমেন্টে MARGIN নেই।

নিচের কোডটি সাপ্লাই() ফাংশনের একটি উদাহরণ চিত্রিত করে। নীচের কোডটি গাড়ির ডেটাসেট ব্যবহার করে এবং গাড়ির সর্বনিম্ন গতি এবং থামার দূরত্ব গণনা করে।

|_+_|

আউটপুট: নীচের আউটপুট lapply() ফাংশন থেকে উৎপন্ন হয়, এবং ন্যূনতম গতি এবং থামার দূরত্ব প্রদর্শন করে।

|_+_|

আউটপুট: নীচের ফলাফলটি স্যাপ্লাই() ফাংশন থেকে উত্পাদিত হয়, যা সর্বনিম্ন গতি এবং স্টপিং দূরত্বের প্রতিনিধিত্ব করে।

|_+_|

আসুন আমরা একটি ভিন্ন উদাহরণ দেখি, যা গাড়ির সর্বোচ্চ থামার দূরত্ব এবং গতি প্রদর্শন করে।

|_+_|

আউটপুট: এখানে, সর্বাধিক গতি এবং দূরত্ব দেখানো lapply() ফাংশন থেকে ফলাফল পাওয়া যায়।

|_+_|

উপরের লাইনের আউটপুট sapply() ফাংশন ব্যবহার করে প্রাপ্ত করা হয়।

আউটপুট:

|_+_|

lapply() এবং saply() ফাংশন ব্যবহার করার একটি উল্লেখযোগ্য সুবিধা হল যে ব্যবহারকারীরা ব্যবহারকারী-সংজ্ঞায়িত ফাংশন ব্যবহার করতে পারেন। আমরা এখন জানব কিভাবে ব্যবহারকারী-সংজ্ঞায়িত ফাংশন lapply(), এবং saply() ফাংশনের মধ্যে ব্যবহার করা যেতে পারে।

বর্তমান উদাহরণে, আমরা একটি avgr ফাংশন সংজ্ঞায়িত করব, যা একটি ভেক্টরের সর্বনিম্ন এবং সর্বোচ্চ গড় খুঁজে পাবে।

|_+_|

আউটপুট:

|_+_|

apply(), saply(), এবং lapply() ফাংশনের মধ্যে পার্থক্য

নিম্নলিখিত সারণীটি উপরের তিনটি ফাংশনের মধ্যে সামগ্রিক পার্থক্য চিত্রিত করে, প্রয়োগ(), ল্যাপ্লি(), এবং সাপ্লাই()।

ফাংশনযুক্তিউদ্দেশ্যইনপুটআউটপুট
আবেদন ()এটি তিনটি আর্গুমেন্ট লাগে, যথা, এক্স, মার্জিন এবং ফান।আমরা একটি ম্যাট্রিক্সের সারি এবং কলামে apply() ফাংশন ব্যবহার করি।apply() ফাংশন ইনপুট হিসাবে একটি ডেটা ফ্রেম বা ভেক্টর নেয়।এটি একটি তালিকা, অ্যারে বা ভেক্টর আকারে আউটপুট তৈরি করে।
lapply()lapply() ফাংশন দুটি আর্গুমেন্ট, X এবং FUN অন্তর্ভুক্ত করে। এতে মার্জিন নেই।এটি একটি তালিকা, ভেক্টর বা ডেটা ফ্রেমের সমস্ত উপাদানগুলিতে প্রয়োগ করতে ব্যবহৃত হয়।এই ফাংশনে ইনপুট ডেটা স্ট্রাকচার অন্তর্ভুক্ত থাকে, যেমন তালিকা, ভেক্টর বা ডেটা ফ্রেম।lapply() ফাংশন তার আউটপুট হিসাবে শুধুমাত্র একটি তালিকা তৈরি করে।
প্রয়োগ ()এই ফাংশনের দুটি আর্গুমেন্ট আছে, এক্স এবং ফান। ARGIN যুক্তি অন্তর্ভুক্ত করা হয় না.আপনি ইনপুট এর সমস্ত উপাদান ব্যবহার করতে saply() ফাংশন ব্যবহার করতে পারেন।সাপ্লাই() ফাংশন ইনপুট হিসাবে একটি তালিকা, ভেক্টর বা ডেটা ফ্রেমও নেয়।এটি ভেক্টর বা ম্যাট্রিক্স আকারে আউটপুট উপস্থাপন করে।

taply() ফাংশন

tapply() ফাংশনটি গড়, গড়, গড়, সর্বোচ্চ, মিন, যোগফল ইত্যাদি গণনা করতে ব্যবহৃত হয়। আপনি একটি ভেক্টরের প্রতিটি ফ্যাক্টর ভেরিয়েবলের জন্য এই পরিমাপগুলি কম্পিউটার করতে পারেন। taply() ফাংশনের একটি আকর্ষণীয় অংশ হল একটি ভেক্টরের যেকোনো উপসেট অংশ গ্রহণ করা এবং এটির উপর যেকোনো ব্যবস্থা করা। নিচে taply() ফাংশনের সিনট্যাক্স দেওয়া হল:

|_+_|

এখানে, X হল একটি অবজেক্ট বা একটি ভেক্টর, INDEX হল ফ্যাক্টর ধারণকারী একটি তালিকা, এবং FUN হল X এ প্রয়োগ করা একটি ফাংশন।

আমরা আইরিস ডেটাসেটের উদাহরণ নিয়ে ট্যাপলাই() ফাংশনটি বুঝতে পারি। ডেটা বিজ্ঞানী বা গবেষকরা আইডি, দেশ বা শহরের মতো নির্দিষ্ট বৈশিষ্ট্যের উপর ভিত্তি করে ডেটার গ্রুপিং সঞ্চালন করেন। মেশিন লার্নিং ডোমেন ব্যাপকভাবে আইরিস ডেটাসেট ব্যবহার করে।

ধরুন তিনটি ভিন্ন ধরনের ফুল আছে, Sepal, Versicolor এবং Virginica। আইরিস ডেটাসেট ফুলের দৈর্ঘ্য এবং প্রস্থের মতো তথ্য সংগ্রহ করে ফুলের প্রজাতির পূর্বাভাস দেয়। বিবেচনা করুন যে আমাদের প্রতিটি প্রজাতির গড় দৈর্ঘ্য গণনা করতে হবে। দৈর্ঘ্যের মাঝামাঝি গণনা করতে আপনি ট্যাপলাই() ফাংশন ব্যবহার করতে পারেন।

|_+_|

আউটপুট:

|_+_|

mapply() ফাংশন

apply() ফ্যামিলির ম্যাপপ্লাই() ফাংশনটি সাপ্লাই() ফাংশনের অনুরূপ। এটি আউটপুট হিসাবে একটি ভেক্টর তৈরি করে। mapply() ফাংশনটিকে মাল্টি-ভেরিয়েট ফাংশন হিসাবেও উল্লেখ করা হয়। নামটি বহু-ভেরিয়েট ফাংশন, কারণ এটি একাধিক ভেক্টর এবং তালিকা আর্গুমেন্টের সাথে ব্যবহার করা যেতে পারে। অন্য কথায়, mapply() ফাংশনটি সমান্তরালভাবে একাধিক বস্তুর পুনরাবৃত্তি করতে ব্যবহৃত হয়। mapply() ফাংশনে FUN প্রতিটি আর্গুমেন্টের প্রতিটি উপাদানের সাথে ব্যবহার করা হয়।

নিম্নলিখিত উদাহরণটি ম্যাপলি() ফাংশন সম্পর্কে আপনার বোঝার আরও স্পষ্ট করে তুলবে।

|_+_|

আউটপুট:

|_+_|

এখানে, ফাংশনটি ম্যাপলাই() ফাংশনে পাস করা আর্গুমেন্ট। ফাংশন দুটি পরামিতি জড়িত, a এবং b. প্রদত্ত দ্বিতীয় আর্গুমেন্ট হল a=c(3,4), এবং তৃতীয় আর্গুমেন্ট হল b=c(2,3)। সুতরাং, a এবং b এর দুটি ভিন্ন মান আছে। সুতরাং, mapply() এর ফাংশনটিকে দুই বার বলা হয়। mapply() ফাংশনের প্রথম কল হল a=3 এবং y=2 এর জন্য। x=4 এবং y=3 এর জন্য, দ্বিতীয় কলটি ম্যাপলি() ফাংশনে দেওয়া হয়।

উপসংহার

R প্রোগ্রামিং ভাষা বিশেষভাবে পরিসংখ্যানগত এবং গ্রাফিকাল ডেটা উপস্থাপনের জন্য তৈরি করা হয়েছে। RStudio হল R ভাষার জন্য ডিজাইন করা একটি নির্দিষ্ট ইন্টারফেস। R ভাষায় পাঁচটি প্রাথমিক ডেটা স্ট্রাকচার রয়েছে। তারা হল ভেক্টর, তালিকা, ম্যাট্রিস, ডেটা ফ্রেম এবং অ্যারে। আমরা এই প্রতিটি R ডেটা স্ট্রাকচারকে তাদের সিনট্যাক্স সহ বিস্তারিতভাবে দেখেছি।

অ্যাপ্লিকেশন() ফ্যামিলি ফাংশনে বেশ কিছু ফাংশন অন্তর্ভুক্ত করা হয়েছে। এই নিবন্ধটিতে apply(), lapply(), saply(), tapply(), এবং mapply() ফাংশন রয়েছে। প্রতিটি ফাংশন apply() পরিবারের অন্তর্গত এবং উদাহরণ সহ স্পষ্টভাবে ব্যাখ্যা করা হয়েছে।

পরে, আমরা apply() এবং lapply() ফাংশন, ad apply() এবং saply() ফাংশনের মধ্যে পার্থক্য দেখেছি। apply(), lapply(), এবং saply() ফাংশনগুলির একটি বিশদ তুলনা একটি টেবিলে চিত্রিত করা হয়েছে, যা যেকোনো পাঠককে বুঝতে সহজ করে তোলে।