ট্র্যাক
/
R
R
/
সিলেবাস
/
নেমস অ্যাট্রিবিউট
নে

নেমস অ্যাট্রিবিউট মধ্যে R

১টি অনুশীলনী

নেমস অ্যাট্রিবিউট সম্পর্কে

ভেক্টরের এলিমেন্টগুলোর নাম থাকতে পারে, আর এতে কখনও কখনও সেগুলো নিয়ে কাজ করা আরও সুবিধাজনক হয়ে ওঠে।

তৈরি করা

একটি ভেক্টরে নাম যোগ করার তিনটি উপায় আছে।

১) ভেক্টর তৈরির সময়

> work_days <- c(Mon = TRUE, Tue = TRUE, Wed = TRUE, Thu = TRUE, Fri = TRUE, Sat = FALSE, Sun = FALSE)
> work_days
  Mon   Tue   Wed   Thu   Fri   Sat   Sun 
 TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE 

২) names()-এ একটি ক্যারেক্টার ভেক্টর অ্যাসাইন করে

> months <- c(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
> names(months) <- month.abb
> months
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 
 31  28  31  30  31  30  31  31  30  31  30  31 

৩) setNames() দিয়ে

> months <- c(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
> setNames(months, month.name)
  January  February     March     April       May      June      July    August September   October  November  December 
       31        28        31        30        31        30        31        31        30        31        30        31 

সরানো

নাম আর দরকার না হলে NULL-এ সেট করে সেগুলো সরিয়ে ফেলা যায়।

> work_days
  Mon   Tue   Wed   Thu   Fri   Sat   Sun 
 TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE 
> names(work_days) <- NULL
> work_days
[1]  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE

unname() ফাংশনটিও একই কাজ করে, আর সম্ভবত আপনার উদ্দেশ্য আরও স্পষ্ট করে তোলে।

নাম নিয়ে কাজ করা

names() ফাংশন দিয়ে নাম সেট করা যায়, আবার নাম বের করাও যায়।

> names(months) <- month.abb
> names(months)[1:3]
[1] "Jan" "Feb" "Mar"

পজিশন ইনডেক্সের জায়গায় নাম ব্যবহার করা যায়, তবে এক্ষেত্রে কোটেশন দিতে হয়।

> months[c("Jul", "Aug")]
Jul Aug 
 31  31 

এভাবে ইনডেক্সিং ঠিকভাবে কাজ করার জন্য নামগুলো যেন অনন্য হয় এবং কোনোটি যেন অনুপস্থিত না থাকে তা নিশ্চিত করা ভালো। তবে R অনন্যতা বাধ্যতামূলক করে না।

সাধারণ ভেক্টর অপারেশনগুলো আগের মতোই কাজ করে, আর যুক্তিসঙ্গত হলে নামগুলো সাধারণত সংরক্ষিত থাকে।

> months[months == 30]
Apr Jun Sep Nov 
 30  30  30  30 

> sum(months)
[1] 365  # no meaningful names possible

আরও উন্নত বিষয়

vectors সহ অনেক R অবজেক্টের সাথে ইচ্ছেমতো অ্যাট্রিবিউট যুক্ত করা যায়। names অ্যাট্রিবিউট তার একটি উদাহরণ মাত্র, তবে বিশেষভাবে কমন ও গুরুত্বপূর্ণ একটি উদাহরণ।

বাস্তবে নাম কখনও কখনও ভেক্টরের জন্য কাজে লাগে, তবে খুব কমই অপরিহার্য। আরও জটিল গঠন যেমন lists ও dataframes-এর ক্ষেত্রে names-attribute অনেক বেশি গুরুত্বপূর্ণ হয়ে ওঠে, যা আমরা সামনের কনসেপ্টগুলোতে দেখব।

GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি নতুন একটি উইন্ডো বা ট্যাবে খুলবে

নেমস অ্যাট্রিবিউট শিখুন