{ "nbformat": 4, "nbformat_minor": 2, "metadata": { "colab": { "name": "lesson_2-R.ipynb", "provenance": [], "collapsed_sections": [], "toc_visible": true }, "kernelspec": { "name": "ir", "display_name": "R" }, "language_info": { "name": "R" }, "coopTranslator": { "original_hash": "f3c335f9940cfd76528b3ef918b9b342", "translation_date": "2025-10-11T12:26:06+00:00", "source_file": "2-Regression/2-Data/solution/R/lesson_2-R.ipynb", "language_code": "ta" } }, "cells": [ { "cell_type": "markdown", "source": [ "# பின்வாங்கல் மாதிரியை உருவாக்குதல்: தரவுகளை தயாரித்து காட்சிப்படுத்துதல்\n", "\n", "## **பகுத்தாய்வு பின்வாங்கல் முறை - பாடம் 2**\n", "#### அறிமுகம்\n", "\n", "Tidymodels மற்றும் Tidyverse ஆகியவற்றுடன் இயந்திரக் கற்றல் மாதிரி உருவாக்கத்தை தொடங்க தேவையான கருவிகள் உங்களிடம் உள்ளன. இப்போது உங்கள் தரவுகளுக்கு கேள்விகளை கேட்கத் தயாராக இருக்கிறீர்கள். தரவுகளுடன் வேலை செய்யும் போது மற்றும் இயந்திரக் கற்றல் தீர்வுகளைப் பயன்படுத்தும் போது, உங்கள் தரவுத்தொகுப்பின் திறன்களை சரியாகத் திறக்க சரியான கேள்வியை எவ்வாறு கேட்க வேண்டும் என்பதைப் புரிந்துகொள்வது மிகவும் முக்கியம்.\n", "\n", "இந்தப் பாடத்தில், நீங்கள் கற்றுக்கொள்வீர்கள்:\n", "\n", "- மாதிரி உருவாக்கத்திற்காக உங்கள் தரவுகளை எவ்வாறு தயாரிப்பது.\n", "\n", "- தரவுக் காட்சிப்படுத்தலுக்காக `ggplot2` ஐ எவ்வாறு பயன்படுத்துவது.\n", "\n", "நீங்கள் பதிலளிக்க வேண்டிய கேள்வி, நீங்கள் எந்த வகையான இயந்திரக் கற்றல் ஆல்காரிதங்களைப் பயன்படுத்துவீர்கள் என்பதை தீர்மானிக்கும். மேலும், நீங்கள் பெறும் பதிலின் தரம், உங்கள் தரவின் தன்மைக்கு மிகவும் சார்ந்திருக்கும்.\n", "\n", "இதை ஒரு நடைமுறை பயிற்சியின் மூலம் பார்ப்போம்.\n", "\n", "\n", "
\n",
"
\n",
"
\n",
"\n",
"> ஒரு நினைவூட்டல்: பைப் ஆபரேட்டர் (`%>%`) ஒரு பொருளை முன்னோக்கி ஒரு செயல்பாடு அல்லது அழைப்பு வெளிப்பாட்டில் அனுப்புவதன் மூலம் தர்க்கரீதியான வரிசையில் செயல்பாடுகளைச் செய்கிறது. உங்கள் குறியீட்டில் பைப் ஆபரேட்டரை \"அதற்குப் பிறகு\" என்று கூறுவது போலவே நினைக்கலாம்.\n"
],
"metadata": {
"id": "REWcIv9yX29v"
}
},
{
"cell_type": "markdown",
"source": [
"## 2. தரவின் பிழைகள் உள்ளதா என்பதை சரிபார்க்கவும்\n",
"\n",
"தரவியல் விஞ்ஞானிகள் அடிக்கடி சமாளிக்க வேண்டிய பொதுவான பிரச்சனைகளில் ஒன்று முழுமையற்ற அல்லது பிழையான தரவாகும். R பிழையான அல்லது தெரியாத மதிப்புகளை `NA` (Not Available) என்ற சிறப்பு மதிப்புடன் பிரதிநிதித்துவப்படுத்துகிறது.\n",
"\n",
"அப்படியென்றால், தரவுப் பட்டியலில் பிழைகள் உள்ளதா என்பதை எப்படி தெரிந்துகொள்வது?\n",
"
\n",
"- ஒரு நேரடி வழி `anyNA` என்ற அடிப்படை R செயல்பாட்டைப் பயன்படுத்துவது, இது `TRUE` அல்லது `FALSE` என்ற தர்க்க வினாக்களை திருப்புகிறது.\n"
],
"metadata": {
"id": "Zxfb3AM5YbUe"
}
},
{
"cell_type": "code",
"execution_count": null,
"source": [
"pumpkins %>% \n",
" anyNA()"
],
"outputs": [],
"metadata": {
"id": "G--DQutAYltj"
}
},
{
"cell_type": "markdown",
"source": [
"அற்புதம், சில தரவுகள் காணாமல் போயிருக்கிறது! அதுவே தொடங்க நல்ல இடமாக இருக்கும்.\n",
"\n",
"- மற்றொரு வழி `is.na()` என்ற செயல்பாட்டைப் பயன்படுத்துவது, இது எந்த தனிப்பட்ட நெடுவரிசை கூறுகள் காணாமல் போயிருக்கின்றன என்பதை தர்க்கரீதியான `TRUE` மூலம் காட்டுகிறது.\n"
],
"metadata": {
"id": "mU-7-SB6YokF"
}
},
{
"cell_type": "code",
"execution_count": null,
"source": [
"pumpkins %>% \n",
" is.na() %>% \n",
" head(n = 7)"
],
"outputs": [],
"metadata": {
"id": "W-DxDOR4YxSW"
}
},
{
"cell_type": "markdown",
"source": [
"சரி, இவ்வளவு பெரிய தரவுத்தொகுப்புடன் வேலை முடிந்தது, ஆனால் இதைப் போன்ற ஒரு பெரிய தரவுத்தொகுப்பில், ஒவ்வொரு வரிசையும் நெடுவரிசையும் தனித்தனியாக பரிசீலிக்க முயற்சிப்பது செயல்திறனற்றது மற்றும் நடைமுறையில் சாத்தியமற்றது😴.\n",
"\n",
"- ஒரு சிக்கலற்ற முறையாக ஒவ்வொரு நெடுவரிசைக்கும் காணாமல் போன மதிப்புகளின் தொகையை கணக்கிடுவது இருக்கும்:\n"
],
"metadata": {
"id": "xUWxipKYY0o7"
}
},
{
"cell_type": "code",
"execution_count": null,
"source": [
"pumpkins %>% \n",
" is.na() %>% \n",
" colSums()"
],
"outputs": [],
"metadata": {
"id": "ZRBWV6P9ZArL"
}
},
{
"cell_type": "markdown",
"source": [
"மிகச் சிறப்பு! சில தரவுகள் காணாமல் போயிருக்கலாம், ஆனால் அது இங்கே செய்ய வேண்டிய பணிக்குத் தேவையில்லை எனலாம். மேலும் ஆய்வுகள் என்ன வெளிப்படுத்துகின்றன என்பதைப் பார்ப்போம்.\n",
"\n",
"> அற்புதமான தொகுப்புகள் மற்றும் செயல்பாடுகளுடன், R-க்கு மிகச் சிறந்த ஆவணங்கள் உள்ளன. உதாரணமாக, `help(colSums)` அல்லது `?colSums` ஐப் பயன்படுத்தி அந்த செயல்பாடு பற்றி மேலும் அறியலாம்.\n"
],
"metadata": {
"id": "9gv-crB6ZD1Y"
}
},
{
"cell_type": "markdown",
"source": [
"## 3. Dplyr: தரவுகளை மாற்றுவதற்கான ஒரு இலக்கணம்\n",
"\n",
"
\n",
"
\n",
"
\n"
],
"metadata": {
"id": "i5o33MQBZWWw"
}
},
{
"cell_type": "markdown",
"source": [
"#### dplyr::select()\n",
"\n",
"`select()` என்பது `dplyr` என்ற தொகுப்பில் உள்ள ஒரு செயல்பாடு, இது நீங்கள் வைத்திருக்க வேண்டிய அல்லது நீக்க வேண்டிய நெடுவரிசைகளை தேர்வு செய்ய உதவுகிறது.\n",
"\n",
"உங்கள் தரவுத்தொகுப்பை எளிதாக கையாள, அதன் பல நெடுவரிசைகளை நீக்கி, `select()` மூலம் உங்களுக்கு தேவையான நெடுவரிசைகளை மட்டும் வைத்திருக்கலாம்.\n",
"\n",
"உதாரணமாக, இந்த பயிற்சியில், நமது பகுப்பாய்வு `Package`, `Low Price`, `High Price` மற்றும் `Date` என்ற நெடுவரிசைகளை உள்ளடக்கி இருக்கும். இந்நெடுவரிசைகளை தேர்வு செய்வோம்.\n"
],
"metadata": {
"id": "x3VGMAGBZiUr"
}
},
{
"cell_type": "code",
"execution_count": null,
"source": [
"# Select desired columns\n",
"pumpkins <- pumpkins %>% \n",
" select(Package, `Low Price`, `High Price`, Date)\n",
"\n",
"\n",
"# Print data set\n",
"pumpkins %>% \n",
" slice_head(n = 5)"
],
"outputs": [],
"metadata": {
"id": "F_FgxQnVZnM0"
}
},
{
"cell_type": "markdown",
"source": [
"#### dplyr::mutate()\n",
"\n",
"`mutate()` என்பது `dplyr` என்ற தொகுப்பில் உள்ள ஒரு செயல்பாடு, இது புதிய நிரல்கள் உருவாக்க அல்லது உள்ள நிரல்களை மாற்ற உதவுகிறது, ஆனால் ஏற்கனவே உள்ள நிரல்களை வைத்திருக்கிறது.\n",
"\n",
"`mutate`-இன் பொதுவான அமைப்பு:\n",
"\n",
"`data %>% mutate(new_column_name = what_it_contains)`\n",
"\n",
"இப்போது `Date` நிரலைப் பயன்படுத்தி `mutate`-ஐ செயல்படுத்தி பின்வரும் செயல்பாடுகளை செய்யலாம்:\n",
"\n",
"1. தேதிகளை (தற்போது எழுத்து வகையாக உள்ளவை) மாத வடிவமாக மாற்றவும் (இவை அமெரிக்க தேதிகள், எனவே வடிவம் `MM/DD/YYYY`).\n",
"\n",
"2. தேதிகளில் இருந்து மாதத்தை புதிய நிரலுக்கு எடுக்கவும்.\n",
"\n",
"R-இல், [lubridate](https://lubridate.tidyverse.org/) என்ற தொகுப்பு தேதிகால தரவுடன் வேலை செய்ய எளிதாக்குகிறது. எனவே, `dplyr::mutate()`, `lubridate::mdy()`, `lubridate::month()` ஆகியவற்றைப் பயன்படுத்தி மேலே கூறிய இலக்குகளை எவ்வாறு அடையலாம் என்பதைப் பார்ப்போம். Date நிரலை நீக்கலாம், ஏனெனில் அதை அடுத்தடுத்த செயல்பாடுகளில் மீண்டும் தேவையில்லை.\n"
],
"metadata": {
"id": "2KKo0Ed9Z1VB"
}
},
{
"cell_type": "code",
"execution_count": null,
"source": [
"# Load lubridate\n",
"library(lubridate)\n",
"\n",
"pumpkins <- pumpkins %>% \n",
" # Convert the Date column to a date object\n",
" mutate(Date = mdy(Date)) %>% \n",
" # Extract month from Date\n",
" mutate(Month = month(Date)) %>% \n",
" # Drop Date column\n",
" select(-Date)\n",
"\n",
"# View the first few rows\n",
"pumpkins %>% \n",
" slice_head(n = 7)"
],
"outputs": [],
"metadata": {
"id": "5joszIVSZ6xe"
}
},
{
"cell_type": "markdown",
"source": [
"வூஹூ! 🤩\n",
"\n",
"அடுத்ததாக, புதிய `Price` என்ற நெடுவரிசையை உருவாக்குவோம், இது ஒரு பூசணிக்காயின் சராசரி விலையை குறிக்கிறது. இப்போது, புதிய Price நெடுவரிசையை நிரப்ப `Low Price` மற்றும் `High Price` நெடுவரிசைகளின் சராசரியை எடுப்போம்.\n",
"
\n"
],
"metadata": {
"id": "nIgLjNMCZ-6Y"
}
},
{
"cell_type": "code",
"execution_count": null,
"source": [
"# Create a new column Price\n",
"pumpkins <- pumpkins %>% \n",
" mutate(Price = (`Low Price` + `High Price`)/2)\n",
"\n",
"# View the first few rows of the data\n",
"pumpkins %>% \n",
" slice_head(n = 5)"
],
"outputs": [],
"metadata": {
"id": "Zo0BsqqtaJw2"
}
},
{
"cell_type": "markdown",
"source": [
"ஆமாம்!💪\n",
"\n",
"\"ஆனால், ஒரு நிமிடம்!\", நீங்கள் `View(pumpkins)` மூலம் முழு தரவுத்தொகுப்பை பார்வையிட்ட பிறகு சொல்வீர்கள், \"இங்கே ஏதோ விசித்திரமாக இருக்கிறது!\"🤔\n",
"\n",
"நீங்கள் `Package` பத்தியைப் பார்ப்பீர்கள் என்றால், கும்முட்டிகள் பல்வேறு வடிவங்களில் விற்கப்படுகின்றன. சில `1 1/9 bushel` அளவுகளில் விற்கப்படுகின்றன, சில `1/2 bushel` அளவுகளில், சில கும்முட்டி ஒன்றுக்கு, சில பவுன்டுக்கு, மற்றும் சில பெரிய பெட்டிகளில், பரந்த அகலத்துடன் விற்கப்படுகின்றன.\n",
"\n",
"இதை சரிபார்ப்போம்:\n"
],
"metadata": {
"id": "p77WZr-9aQAR"
}
},
{
"cell_type": "code",
"execution_count": null,
"source": [
"# Verify the distinct observations in Package column\n",
"pumpkins %>% \n",
" distinct(Package)"
],
"outputs": [],
"metadata": {
"id": "XISGfh0IaUy6"
}
},
{
"cell_type": "markdown",
"source": [
"அற்புதம்!👏\n",
"\n",
"பூசணிக்காய்களை தொடர்ந்து எடை போடுவது மிகவும் கடினமாக இருக்கிறது, எனவே `Package` sütun-இல் *bushel* என்ற string-ஐ கொண்ட பூசணிக்காய்களை மட்டும் தேர்ந்தெடுத்து, இதை புதிய தரவுத்தொகுப்பில் `new_pumpkins` என வைக்கலாம்.\n"
],
"metadata": {
"id": "7sMjiVujaZxY"
}
},
{
"cell_type": "markdown",
"source": [
"#### dplyr::filter() மற்றும் stringr::str_detect()\n",
"\n",
"[`dplyr::filter()`](https://dplyr.tidyverse.org/reference/filter.html): உங்கள் நிபந்தனைகளை பூர்த்தி செய்யும் **வரிசைகள்** மட்டுமே உள்ளடங்கிய தரவின் ஒரு துணுக்கை உருவாக்குகிறது, இந்தக் கட்டத்தில் `Package` பத்தியில் *bushel* என்ற string உள்ள கம்பளிகளைத் தேர்ந்தெடுக்கிறது.\n",
"\n",
"[stringr::str_detect()](https://stringr.tidyverse.org/reference/str_detect.html): ஒரு string-ல் ஒரு முறைமையின் இருப்பை அல்லது இல்லாமையை கண்டறிகிறது.\n",
"\n",
"[`stringr`](https://github.com/tidyverse/stringr) தொகுப்பு பொதுவான string செயல்பாடுகளுக்கான எளிய செயல்பாடுகளை வழங்குகிறது.\n"
],
"metadata": {
"id": "L8Qfcs92ageF"
}
},
{
"cell_type": "code",
"execution_count": null,
"source": [
"# Retain only pumpkins with \"bushel\"\n",
"new_pumpkins <- pumpkins %>% \n",
" filter(str_detect(Package, \"bushel\"))\n",
"\n",
"# Get the dimensions of the new data\n",
"dim(new_pumpkins)\n",
"\n",
"# View a few rows of the new data\n",
"new_pumpkins %>% \n",
" slice_head(n = 5)"
],
"outputs": [],
"metadata": {
"id": "hy_SGYREampd"
}
},
{
"cell_type": "markdown",
"source": [
"நாம் 415 அல்லது அதற்கு அருகிலுள்ள வரிசைகளில் பசல்கள் மூலம் கும்முட்டிகளை கொண்ட தரவுகளை குறைத்துள்ளோம் என்பதை நீங்கள் காணலாம்.🤩\n",
"
\n"
],
"metadata": {
"id": "VrDwF031avlR"
}
},
{
"cell_type": "markdown",
"source": [
"#### dplyr::case_when()\n",
"\n",
"**ஆனால் காத்திருக்கவும்! இன்னும் ஒரு வேலை செய்ய வேண்டும்**\n",
"\n",
"நீங்கள் கவனித்தீர்களா, புஷல் அளவு ஒவ்வொரு வரியிலும் மாறுகிறது? நீங்கள் விலை நிர்ணயத்தை சாதாரணமாக்க வேண்டும், அதாவது 1 1/9 அல்லது 1/2 புஷல் அல்ல, புஷல் ஒன்றுக்கு விலையை காட்ட வேண்டும். இதைச் செய்ய கணக்குகள் தேவைப்படும்.\n",
"\n",
"நாம் [`case_when()`](https://dplyr.tidyverse.org/reference/case_when.html) செயல்பாட்டைப் பயன்படுத்தி சில நிபந்தனைகளின் அடிப்படையில் Price கம்பத்தை *மாற்ற* போகிறோம். `case_when` பல `if_else()` அறிக்கைகளை வெக்டரீசு செய்ய அனுமதிக்கிறது.\n"
],
"metadata": {
"id": "mLpw2jH4a0tx"
}
},
{
"cell_type": "code",
"execution_count": null,
"source": [
"# Convert the price if the Package contains fractional bushel values\n",
"new_pumpkins <- new_pumpkins %>% \n",
" mutate(Price = case_when(\n",
" str_detect(Package, \"1 1/9\") ~ Price/(1 + 1/9),\n",
" str_detect(Package, \"1/2\") ~ Price/(1/2),\n",
" TRUE ~ Price))\n",
"\n",
"# View the first few rows of the data\n",
"new_pumpkins %>% \n",
" slice_head(n = 30)"
],
"outputs": [],
"metadata": {
"id": "P68kLVQmbM6I"
}
},
{
"cell_type": "markdown",
"source": [
"இப்போது, அவர்களின் புஷல் அளவீட்டின் அடிப்படையில் ஒவ்வொரு அலகின் விலையையும் பகுப்பாய்வு செய்யலாம். ஆனால், இந்த புஷல் அளவீட்டின் கற்பனைகள் அனைத்தும், உங்கள் தரவின் தன்மையை `புரிந்து கொள்வது மிகவும் முக்கியம்` என்பதை காட்டுகிறது!\n",
"\n",
"> ✅ [The Spruce Eats](https://www.thespruceeats.com/how-much-is-a-bushel-1389308) படி, புஷலின் எடை உற்பத்தி வகையைப் பொறுத்து மாறுபடும், ஏனெனில் இது ஒரு அளவீட்டு முறை. \"ஒரு புஷல் தக்காளி, உதாரணமாக, 56 பவுண்டுகள் எடையுடன் இருக்க வேண்டும்... இலைகள் மற்றும் கீரைகள் குறைந்த எடையுடன் அதிக இடத்தை பிடிக்கும், எனவே ஒரு புஷல் கீரை வெறும் 20 பவுண்டுகள் தான்.\" இது எல்லாம் மிகவும் சிக்கலானது! புஷல்-பவுண்ட் மாற்றத்தை செய்ய முயற்சிக்காமல், புஷலின் அடிப்படையில் விலை நிர்ணயிக்கலாம். ஆனால், இந்த புஷல் அளவீட்டின் கற்பனைகள் அனைத்தும், உங்கள் தரவின் தன்மையை புரிந்து கொள்வது மிகவும் முக்கியம் என்பதை காட்டுகிறது!\n",
">\n",
"> ✅ புஷல் பாதி அளவில் விற்கப்படும் பரங்கிக்காய் மிகவும் விலையுயர்ந்தது என்பதை கவனித்தீர்களா? ஏன் என்று கண்டுபிடிக்க முடியுமா? குறிப்பு: சிறிய பரங்கிக்காய்கள் பெரியவைகளைவிட மிகவும் விலையுயர்ந்தவை, ஏனெனில் ஒரு பெரிய வெற்று பரங்கிக்காய் பிடிக்கும் இடத்தை விட, ஒரு புஷலில் பல சிறிய பரங்கிக்காய்கள் அடங்கும்.\n"
],
"metadata": {
"id": "pS2GNPagbSdb"
}
},
{
"cell_type": "markdown",
"source": [
"இப்போது, சாகசத்தின் சுத்தமான காரணத்திற்காக 💁♀️, மாதம் களத்தை முதல் இடத்திற்கு மாற்றுவோம், அதாவது `Package` களத்திற்கு முன்.\n",
"\n",
"`dplyr::relocate()` களத்தின் இடங்களை மாற்ற பயன்படுத்தப்படுகிறது.\n"
],
"metadata": {
"id": "qql1SowfbdnP"
}
},
{
"cell_type": "code",
"execution_count": null,
"source": [
"# Create a new data frame new_pumpkins\n",
"new_pumpkins <- new_pumpkins %>% \n",
" relocate(Month, .before = Package)\n",
"\n",
"new_pumpkins %>% \n",
" slice_head(n = 7)"
],
"outputs": [],
"metadata": {
"id": "JJ1x6kw8bixF"
}
},
{
"cell_type": "markdown",
"source": [
"நன்றாக செய்தீர்கள்!👌 இப்போது உங்களிடம் புதிய ரிக்ரஷன் மாடலை உருவாக்குவதற்கான சுத்தமான, ஒழுங்கான தரவுத்தொகுப்பு உள்ளது! \n",
"
\n"
],
"metadata": {
"id": "y8TJ0Za_bn5Y"
}
},
{
"cell_type": "markdown",
"source": [
"## 4. ggplot2 மூலம் தரவுகளின் காட்சிப்படுத்தல்\n",
"\n",
"
\n",
"
\n",
"
\n"
],
"metadata": {
"id": "Ml7SDCLQcPvE"
}
},
{
"cell_type": "markdown",
"source": [
"### **நாம் அதை எப்படி பயனுள்ளதாக மாற்றுவது?**\n",
"\n",
"பட்டியல்களை பயனுள்ள தரவுகளை காட்டச் செய்ய, நீங்கள் பொதுவாக தரவுகளை ஏதோ ஒரு வகையில் குழுவாக மாற்ற வேண்டும். உதாரணமாக, எங்கள் நிலைமையில், ஒவ்வொரு மாதத்திற்கும் கும்மட்டியின் சராசரி விலையை கண்டறிவது எங்கள் தரவுகளில் உள்ள அடிப்படை முறைமைகளுக்கு மேலும் தெளிவை வழங்கும். இது எங்களை மேலும் ஒரு **dplyr** பறக்கவிடலுக்கு வழிவகுக்கிறது:\n",
"\n",
"#### `dplyr::group_by() %>% summarize()`\n",
"\n",
"R-இல் குழுவாக்கப்பட்ட தொகுப்புகளை எளிதாக கணக்கிடலாம்\n",
"\n",
"`dplyr::group_by() %>% summarize()`\n",
"\n",
"- `dplyr::group_by()` முழு தரவுத்தொகுப்பிலிருந்து தனிப்பட்ட குழுக்களுக்கான பகுப்பாய்வு அலகை மாற்றுகிறது, உதாரணமாக ஒவ்வொரு மாதத்திற்கும்.\n",
"\n",
"- `dplyr::summarize()` ஒவ்வொரு குழுவாக்க மாறி மற்றும் நீங்கள் குறிப்பிட்டுள்ள ஒவ்வொரு சுருக்க புள்ளியியல் அளவிற்கும் ஒரு கால்முடன் புதிய தரவுத்தொகுப்பை உருவாக்குகிறது.\n",
"\n",
"உதாரணமாக, **Month** களத்தின் அடிப்படையில் கும்மட்டிகளை குழுவாக்க `dplyr::group_by() %>% summarize()` பயன்படுத்தி, ஒவ்வொரு மாதத்திற்கும் **mean price** ஐ கண்டறியலாம்.\n"
],
"metadata": {
"id": "jMakvJZIcVkh"
}
},
{
"cell_type": "code",
"execution_count": null,
"source": [
"# Find the average price of pumpkins per month\r\n",
"new_pumpkins %>%\r\n",
" group_by(Month) %>% \r\n",
" summarise(mean_price = mean(Price))"
],
"outputs": [],
"metadata": {
"id": "6kVSUa2Bcilf"
}
},
{
"cell_type": "markdown",
"source": [
"சுருக்கமாக!✨\n",
"\n",
"மாதங்கள் போன்ற வகை அம்சங்கள் ஒரு பட்டி வரைபடம் மூலம் சிறப்பாக பிரதிநிதித்துவப்படுத்தப்படுகின்றன 📊. பட்டி வரைபடங்களுக்கு பொறுப்பான அடுக்குகள் `geom_bar()` மற்றும் `geom_col()` ஆகும். மேலும் அறிய `?geom_bar` ஐ பார்க்கவும்.\n",
"\n",
"ஒரு பட்டி வரைபடத்தை உருவாக்குவோம்!\n"
],
"metadata": {
"id": "Kds48GUBcj3W"
}
},
{
"cell_type": "code",
"execution_count": null,
"source": [
"# Find the average price of pumpkins per month then plot a bar chart\r\n",
"new_pumpkins %>%\r\n",
" group_by(Month) %>% \r\n",
" summarise(mean_price = mean(Price)) %>% \r\n",
" ggplot(aes(x = Month, y = mean_price)) +\r\n",
" geom_col(fill = \"midnightblue\", alpha = 0.7) +\r\n",
" ylab(\"Pumpkin Price\")"
],
"outputs": [],
"metadata": {
"id": "VNbU1S3BcrxO"
}
},
{
"cell_type": "markdown",
"source": [
"🤩🤩இது மிகவும் பயனுள்ள தரவுக் காட்சியாக உள்ளது! இது கும்மட்டியின் அதிகபட்ச விலை செப்டம்பர் மற்றும் அக்டோபர் மாதங்களில் ஏற்படுகிறது என்பதை காட்டுகிறது. இது உங்கள் எதிர்பார்ப்புக்கு பொருந்துகிறதா? ஏன் அல்லது ஏன் இல்லை?\n",
"\n",
"இரண்டாவது பாடத்தை முடித்ததற்கு வாழ்த்துக்கள் 👏! நீங்கள் உங்கள் தரவுகளை மாதிரி உருவாக்கத்திற்காக தயாரித்தீர்கள், பின்னர் காட்சிகளைப் பயன்படுத்தி மேலும் தகவல்களை கண்டறிந்தீர்கள்!\n"
],
"metadata": {
"id": "zDm0VOzzcuzR"
}
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**குறிப்பு**: \nஇந்த ஆவணம் [Co-op Translator](https://github.com/Azure/co-op-translator) என்ற AI மொழிபெயர்ப்பு சேவையை பயன்படுத்தி மொழிபெயர்க்கப்பட்டுள்ளது. நாங்கள் துல்லியத்திற்காக முயற்சிக்கின்றோம், ஆனால் தானியக்க மொழிபெயர்ப்புகளில் பிழைகள் அல்லது தவறான தகவல்கள் இருக்கக்கூடும் என்பதை கவனத்தில் கொள்ளவும். அதன் தாய்மொழியில் உள்ள மூல ஆவணம் அதிகாரப்பூர்வ ஆதாரமாக கருதப்பட வேண்டும். முக்கியமான தகவல்களுக்கு, தொழில்முறை மனித மொழிபெயர்ப்பு பரிந்துரைக்கப்படுகிறது. இந்த மொழிபெயர்ப்பைப் பயன்படுத்துவதால் ஏற்படும் எந்த தவறான புரிதல்கள் அல்லது தவறான விளக்கங்களுக்கு நாங்கள் பொறுப்பல்ல.\n"
]
}
]
}