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

অন্বেষণ এবং সমষ্টি

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

মৌলিক পরিসংখ্যানগত কার্যাবলী

R আপনাকে কেন্দ্রের প্রধান পরিমাপগুলি সহজেই গণনা করতে দেয় এবং সংখ্যাসূচক ভেক্টরগুলিতে ছড়িয়ে পড়ে:

  • mean(x): উপাদানগুলির গাণিতিক গড় গণনা করে।
  • median(x): মধ্যমা গণনা করে (মাঝারি মান)।
  • sd(x): মানক বিচ্যুতি গণনা করে (ডেটা কতটা ছড়িয়ে আছে তার একটি পরিমাপ)।
  • min(x) এবং max(x): যথাক্রমে সর্বনিম্ন এবং সর্বোচ্চ মান ফেরত দিন।
R
values <- c(10, 12, 15, 18, 20, 22)

avg <- mean(values)
dispersion <- sd(values)

cat("Mean:", avg, "- Std Dev:", round(dispersion, 2), "\n")

অনুপস্থিত ডেটা পরিচালনা করা (NA)

বাস্তব জগতে, ডেটাসেটগুলিতে প্রায়ই অনুপস্থিত মান থাকে, বিশেষ সত্তা NA দ্বারা R তে প্রতিনিধিত্ব করা হয় (উপলভ্য নয়)।

আপনি যদি এমন একটি ভেক্টরে গড় বা অন্য কোনো সমষ্টি গণনা করার চেষ্টা করেন যাতে একটি একক NA থাকে, R ফলাফল হিসাবে NA প্রদান করবে। অনুপস্থিত মান উপেক্ষা করতে, আপনাকে অবশ্যই লজিক্যাল আর্গুমেন্ট পাস করতে হবে na.rm = TRUE (NA অপসারণ):

R
temperatures <- c(18, 21, NA, 24, 19)

# This will return NA
print(mean(temperatures))

# This will ignore the NA and perform the calculation on valid values
print(mean(temperatures, na.rm = TRUE))

summary() এর সাথে বিশ্বব্যাপী সারাংশ

summary() ফাংশন হল একটি শক্তিশালী টুল যা একটি ভেক্টর বা একটি সম্পূর্ণ ডেটা ফ্রেমের একটি সম্পূর্ণ পরিসংখ্যানগত ওভারভিউ প্রদান করে, ন্যূনতম, প্রথম কোয়ার্টাইল, মধ্যমা, গড়, তৃতীয় চতুর্থাংশ এবং সর্বোচ্চ:

R
prices <- c(5, 10, 15, 20, 100)
print(summary(prices))

aggregate এর সাথে ডেটা একত্রিত করা

ডেটা ফ্রেমের সাথে কাজ করার সময়, নির্দিষ্ট গোষ্ঠী বা বিভাগের জন্য সারাংশ পরিসংখ্যান (যেমন গড় বা যোগফল) গণনা করা সাধারণ। R-এ aggregate() ফাংশন এই প্রক্রিয়াটিকে সহজ করে:

R
df <- data.frame(
  department = c("HR", "IT", "HR", "IT"),
  salary = c(3000, 4500, 3200, 4800)
)

# Calcola la media dei salari per dipartimento
avg_salaries <- aggregate(salary ~ department, data = df, FUN = mean)
print(avg_salaries)

সিনট্যাক্স salary ~ department মানে "department ভেরিয়েবলের উপর ভিত্তি করে salary ভেরিয়েবল বিশ্লেষণ করুন"। FUN = mean যুক্তিটি নির্দিষ্ট করে যে আমরা প্রতিটি দলের জন্য পাটিগণিত গড় গণনা করতে চাই।

subset এর সাথে উন্নত ফিল্টারিং

subset() ফাংশন জটিল বর্গাকার বন্ধনীর ব্যবহার এড়িয়ে ডাটা ফ্রেম থেকে সারি এবং কলামের উপসেট বের করার একটি স্বজ্ঞাত এবং মার্জিত উপায় প্রদান করে:

R
employees <- data.frame(
  name = c("Alice", "Bob", "Charlie"),
  age = c(25, 34, 29),
  active = c(TRUE, FALSE, TRUE)
)

# Filtra solo i dipendenti attivi con età superiore a 28
active_employees <- subset(employees, active == TRUE & age > 28)

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

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

ভেক্টর তাপমাত্রা প্রদত্ত, গড় গণনা করুন এবং পরিবর্তনশীল mean_temp এ সংরক্ষণ করুন। তারপর মধ্যম গণনা করুন এবং median_temp এ সংরক্ষণ করুন।

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

ইউএসএ গড়_তাপ <- গড়(তাপমাত্রা) এবং মধ্যম_তাপ <- মধ্যমা(তাপমাত্রা)

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

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

একটি NA মান ধারণকারী স্কোর ভেক্টর দেওয়া, অনুপস্থিত মান বাদ দিয়ে ভেক্টরের আদর্শ বিচ্যুতি গণনা করুন এবং এটি sd_scores ভেরিয়েবলে সংরক্ষণ করুন।

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

na.rm = TRUE আর্গুমেন্টের সাথে sd() ফাংশন ব্যবহার করুন: sd_scores <- sd(scores, na.rm = TRUE)

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

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

ডেটা ফ্রেম df দেওয়া, মান কলামের পরিসংখ্যানগত সারাংশ পান এবং stats_summary ভেরিয়েবলে সংরক্ষণ করুন।

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

$ অপারেটর ব্যবহার করে কলামটি বের করুন এবং এটিকে summary(): stats_summary <- summary(df$values) এ পাঠান

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

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

ডেটা ফ্রেম বিক্রয় দেওয়া, অঞ্চল কলাম দ্বারা গোষ্ঠীবদ্ধ রাজস্ব কলামের যোগফল (FUN = যোগফল) গণনা করতে aggregate() ফাংশন ব্যবহার করুন৷ Region_sales ভেরিয়েবলে ফলাফল সংরক্ষণ করুন।

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

ব্যবহার করুন: অঞ্চল_বিক্রয় <- মোট (আয় ~ অঞ্চল, ডেটা = বিক্রয়, মজা = যোগফল)

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

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

ডেটা ফ্রেম পণ্যের প্রদত্ত, উপসেট() ফাংশনটি শুধুমাত্র 'ইলেক্ট্রনিক্স' বিভাগের অন্তর্গত পণ্যগুলিকে ফিল্টার করতে ব্যবহার করুন (বিভাগ == 'ইলেকট্রনিক্স') এবং যার মূল্য 100 (মূল্য > 100) এর বেশি। দামী_ইলেক্ট্রনিক্স ভেরিয়েবলে ফলাফলটি সংরক্ষণ করুন।

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

ব্যবহার করুন: ব্যয়বহুল_ইলেক্ট্রনিক্স <- উপসেট(পণ্য, বিভাগ == 'ইলেক্ট্রনিক্স' এবং মূল্য > 100)

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