মূল কন্টেন্টে যান
মডিউল 4 · 1-এর পাঠ 2কোর্সে 7/10~12 min
মডিউল পাঠ (1/2)

ফিল্টারিং এবং ডেটা নির্বাচন করা

Tidyverse হল ডেটা বিজ্ঞানের জন্য ডিজাইন করা R প্যাকেজের একটি সংগ্রহ যা একটি সাধারণ দর্শন, ব্যাকরণ এবং ডেটা স্ট্রাকচার শেয়ার করে। এই স্যুটে ডেটা ম্যানিপুলেশনের মূল প্যাকেজটিকে dplyr বলা হয়।

dplyr ফাংশনের একটি সেট ("ক্রিয়া") প্রবর্তন করে যা ডেটা ফ্রেম ম্যানিপুলেশনকে অত্যন্ত স্বজ্ঞাত করে তোলে।


পাইপ অপারেটর (%>% বা |>)

টিডাইভার্স দর্শন একসাথে চেইনিং অপারেশনের উপর কেন্দ্রীভূত। পাইপ অপারেটর %>% (বা নেটিভ পাইপ |> R 4.1+ এ প্রবর্তিত) একটি এক্সপ্রেশনের ফলাফল নেয় এবং পরবর্তী ফাংশনে এটিকে প্রথম আর্গুমেন্ট হিসেবে পাস করে। এটি নেস্টেড ফাংশন কল এড়ায় এবং অস্থায়ী ভেরিয়েবলের সাথে আপনার কর্মক্ষেত্রে বিশৃঙ্খলা প্রতিরোধ করে।

R
# Without pipe:
filter(select(df, name, age), age > 20)

# With pipe:
df %>%
  select(name, age) %>%
  filter(age > 20)

ফিল্টারিং এবং সিলেক্ট করার জন্য dplyr ক্রিয়া

একটি ডেটা ফ্রেম থেকে ডেটা বের করার জন্য তিনটি মৌলিক ক্রিয়া হল:

1. select()

একটি ডেটা ফ্রেম থেকে নির্দিষ্ট কলাম নির্বাচন করে। আপনি কলাম বাদ দিতে - উপসর্গ রাখতে বা ব্যবহার করতে কলামের নাম তালিকাভুক্ত করতে পারেন।

R
# Select the 'name' and 'salary' columns
select(df, name, salary)

# Remove the 'address' column
select(df, -address)

2. filter()

এক বা একাধিক যৌক্তিক অবস্থার উপর ভিত্তি করে সারি ফিল্টার করে।

R
# Filter rows where age is greater than 30
filter(df, age > 30)

# Filter using multiple conditions (logical AND)
filter(df, age > 30, department == "HR")

3. arrange()

এক বা একাধিক কলামের মানের উপর ভিত্তি করে সারি সাজান। বাছাই ক্রম ডিফল্টরূপে আরোহী হয়. নিচের ক্রমে সাজাতে, কলামের নাম desc() এ মোড়ানো।

R
# Sort by age (ascending)
arrange(df, age)

# Sort by salary (descending)
arrange(df, desc(salary))

নিজে চেষ্টা করে দেখুন

অনুশীলনী 1: কলাম নির্বাচন করুন

ব্যায়াম#r.m4.l1.e1
প্রচেষ্টা: 0লোড হচ্ছে...

ডেটা ফ্রেম df দেওয়া, select() ব্যবহার করে নাম এবং বয়স কলাম নির্বাচন করুন এবং df_selected-এ ফলাফল সংরক্ষণ করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

ইউএসএ: df_selected <- নির্বাচন করুন(df, নাম, বয়স)

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম#r.m4.l1.e2
প্রচেষ্টা: 0লোড হচ্ছে...

ডাটা ফ্রেমের সারিগুলি ফিল্টার করুন df যেখানে বয়স কলামটি কঠোরভাবে 18 এর বেশি, ফলাফলটি df_adults এ সংরক্ষণ করে৷

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

ফিল্টার (df, বয়স > 18) ফাংশন ব্যবহার করুন এবং ফলাফলটি df_adults কে বরাদ্দ করুন।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম#r.m4.l1.e3
প্রচেষ্টা: 0লোড হচ্ছে...

চেইন অপারেশনের জন্য পাইপ অপারেটর %>% ব্যবহার করুন: প্রথমে ফিল্টার df শুধুমাত্র রেকর্ড রাখা যেখানে বয়স > 18, এবং তারপর নাম কলাম নির্বাচন করুন। রেজাল্টে রেজাল্ট সেভ করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

স্ক্রিভি: res <- df %>% ফিল্টার (বয়স > 18) %>% নির্বাচন (নাম)

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম#r.m4.l1.e4
প্রচেষ্টা: 0লোড হচ্ছে...

arrange() এবং desc() ব্যবহার করে নিচের ক্রমে বেতন কলামের উপর ভিত্তি করে ডেটা ফ্রেমের df-এর সারি সাজান। ফলাফলটি df_sorted এ সংরক্ষণ করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

ইউএসএ অ্যারেঞ্জ(ডেস্ক(বেতন)) সব'ইন্টারনো ডি উনা পাইপলাইন বা আর্গোমেন্টো ডিরেটো আসে।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম#r.m4.l1.e5
প্রচেষ্টা: 0লোড হচ্ছে...

df-এ একটি সম্পূর্ণ পাইপলাইন লিখুন: যেখানে বিভাগ 'IT'-এর সমান সেই রেকর্ডগুলিকে ফিল্টার করুন, কলামের নাম এবং বেতন নির্বাচন করুন এবং বেতন (অধিক্রম) অনুসারে বাছাই করুন। রেজাল্টে চূড়ান্ত ফলাফল সংরক্ষণ করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

পাইপ ব্যবহার করুন %>% চেইন ফিল্টার (বিভাগ == 'IT'), নির্বাচন করুন (নাম, বেতন), এবং ব্যবস্থা করুন (বেতন)।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ