R প্রোগ্রামিং: Data Manipulation এর উদাহরণ
Data manipulation হল ডেটার বিভিন্ন অংশ পরিবর্তন, সাজানো, ফিল্টার করা, যোগ করা এবং গণনা করা। R প্রোগ্রামিং ভাষায় ডেটা ম্যানিপুলেশনের জন্য অনেক শক্তিশালী প্যাকেজ এবং ফাংশন রয়েছে, যার মধ্যে সবচেয়ে জনপ্রিয় হচ্ছে dplyr এবং tidyr। এই প্যাকেজগুলি ডেটাকে সহজে এবং কার্যকরীভাবে ম্যানিপুলেট করতে সহায়তা করে।
নিচে dplyr এবং tidyr প্যাকেজ ব্যবহার করে বিভিন্ন ধরনের ডেটা ম্যানিপুলেশনের উদাহরণ দেওয়া হলো।
১. dplyr প্যাকেজের মাধ্যমে Data Manipulation
dplyr প্যাকেজটি ডেটা ম্যানিপুলেশনের জন্য সবচেয়ে জনপ্রিয় প্যাকেজ। এটি ডেটার উপর filtering, arranging, mutating, summarizing এবং selecting এর কাজগুলো সহজ করে তোলে।
dplyr প্যাকেজ ইনস্টল এবং লোড করা:
install.packages("dplyr")
library(dplyr)১.১ filter(): ডেটা ফিল্টার করা
filter() ফাংশন দিয়ে একটি নির্দিষ্ট শর্তে ডেটা ফিল্টার করা হয়।
# একটি ডেটাফ্রেম তৈরি
data <- data.frame(
name = c("John", "Alice", "Bob", "Jane"),
age = c(25, 30, 22, 28),
salary = c(50000, 60000, 40000, 55000)
)
# বয়স 25 এর বেশি যারা তাদের নির্বাচন করা
filtered_data <- filter(data, age > 25)
# আউটপুট
print(filtered_data)১.২ arrange(): ডেটা সাজানো
arrange() ফাংশন ব্যবহার করে ডেটা ক্রম অনুযায়ী সাজানো যায় (ascending বা descending)।
# বয়স অনুযায়ী সাজানো (ascending)
arranged_data <- arrange(data, age)
# আউটপুট
print(arranged_data)১.৩ mutate(): নতুন কলাম যোগ করা
mutate() ফাংশন ব্যবহার করে নতুন কলাম যোগ করা যায়।
# নতুন কলাম যোগ করা (monthly_salary হিসাবে বার্ষিক বেতন ভাগ করা)
mutated_data <- mutate(data, monthly_salary = salary / 12)
# আউটপুট
print(mutated_data)১.৪ select(): নির্দিষ্ট কলাম নির্বাচন করা
select() ফাংশন দিয়ে নির্দিষ্ট কলাম নির্বাচন করা যায়।
# name এবং salary কলাম নির্বাচন করা
selected_data <- select(data, name, salary)
# আউটপুট
print(selected_data)১.৫ summarize(): সারাংশ তৈরি করা
summarize() ফাংশন ব্যবহার করে ডেটার সারাংশ তৈরি করা যায়, যেমন গড়, মোট বা অন্যান্য পরিসংখ্যান।
# গড় বেতন হিসাব করা
summary_data <- summarize(data, avg_salary = mean(salary))
# আউটপুট
print(summary_data)১.৬ group_by(): গ্রুপিং
group_by() ফাংশন দিয়ে ডেটা গ্রুপ করা যায় এবং এরপর সারাংশ তৈরি করা যায়।
# বেতন অনুযায়ী গ্রুপিং এবং গড় বয়স হিসাব করা
grouped_data <- data %>%
group_by(salary) %>%
summarize(avg_age = mean(age))
# আউটপুট
print(grouped_data)২. tidyr প্যাকেজের মাধ্যমে Data Manipulation
tidyr প্যাকেজটি ডেটার গঠন পরিবর্তন করতে সাহায্য করে, যেমন wide-to-long বা long-to-wide ফরম্যাটে ডেটা রূপান্তর করা।
tidyr প্যাকেজ ইনস্টল এবং লোড করা:
install.packages("tidyr")
library(tidyr)২.১ spread(): Long format থেকে Wide format এ রূপান্তর
spread() ফাংশন ব্যবহার করে long format ডেটাকে wide format এ রূপান্তর করা যায়।
# একটি long format ডেটাফ্রেম তৈরি
data_long <- data.frame(
name = c("John", "Alice", "Bob", "Jane"),
key = c("age", "age", "age", "age"),
value = c(25, 30, 22, 28)
)
# long থেকে wide format এ রূপান্তর
data_wide <- spread(data_long, key = key, value = value)
# আউটপুট
print(data_wide)২.২ gather(): Wide format থেকে Long format এ রূপান্তর
gather() ফাংশন ব্যবহার করে wide format ডেটাকে long format এ রূপান্তর করা যায়।
# একটি wide format ডেটাফ্রেম তৈরি
data_wide <- data.frame(
name = c("John", "Alice", "Bob", "Jane"),
age = c(25, 30, 22, 28),
salary = c(50000, 60000, 40000, 55000)
)
# wide থেকে long format এ রূপান্তর
data_long <- gather(data_wide, key = "variable", value = "value", age, salary)
# আউটপুট
print(data_long)২.৩ separate(): এক কলাম থেকে দুটি বা বেশি কলামে ভাগ করা
separate() ফাংশন ব্যবহার করে একটি কলামকে দুটি বা বেশি কলামে ভাগ করা যায়।
# একটি ডেটাফ্রেম তৈরি
data <- data.frame(
name = c("John", "Alice", "Bob", "Jane"),
full_name = c("John Doe", "Alice Smith", "Bob Brown", "Jane Doe")
)
# full_name কলাম থেকে first_name এবং last_name কলাম তৈরি করা
separated_data <- separate(data, full_name, into = c("first_name", "last_name"), sep = " ")
# আউটপুট
print(separated_data)২.৪ unite(): দুটি কলামকে একটিতে একত্রিত করা
unite() ফাংশন ব্যবহার করে দুটি কলামকে একত্রিত করা যায়।
# দুটি কলামকে একত্রিত করা
united_data <- unite(separated_data, full_name, first_name, last_name, sep = " ")
# আউটপুট
print(united_data)৩. Data Manipulation এর কিছু অতিরিক্ত টিপস
Pipes (
%>%): R-এ%>%পাইপ অপারেটর ব্যবহৃত হয় একাধিক ফাংশনকে একসাথে ব্যবহার করতে। এটি কোডকে আরও পরিষ্কার এবং পাঠযোগ্য করে তোলে।# pipes ব্যবহার করে একাধিক কাজ করা data %>% filter(age > 25) %>% select(name, age) %>% arrange(age)Filtering NA Values: NA (missing) মানগুলো ফিল্টার করতে
na.omit()ব্যবহার করা হয়।data_clean <- na.omit(data) # NA মানগুলো বাদ দেয়া
সারসংক্ষেপ
R প্রোগ্রামিংয়ে data manipulation হল ডেটা ম্যানিপুলেশন এর অন্যতম গুরুত্বপূর্ণ দিক। এর মাধ্যমে আপনি ডেটাকে ফিল্টার, সাজানো, নতুন কলাম তৈরি, গ্রুপিং, সারাংশ তৈরি এবং ডেটার গঠন পরিবর্তন করতে পারেন। dplyr এবং tidyr প্যাকেজগুলো ডেটা ম্যানিপুলেশন করার জন্য খুবই শক্তিশালী টুলস, এবং এগুলি ডেটার উপর বিভিন্ন কার্যক্রম পরিচালনা করার জন্য ব্যবহার করা হয়।
- filter(), arrange(), mutate(), select(), summarize() এবং group_by() হল dplyr-এর জনপ্রিয় ফাংশন।
- spread(), gather(), separate(), unite() হল tidyr-এর জনপ্রিয় ফাংশন।
এই ফাংশনগুলির মাধ্যমে আপনি ডেটা প্রক্রিয়া এবং বিশ্লেষণ করতে পারবেন আরও দ্রুত এবং কার্যকরভাবে।
Read more