# A tibble: 10 × 5
name species hair_color skin_color eye_color
<chr> <chr> <chr> <chr> <chr>
1 Luke Skywalker Human blond fair blue
2 C-3PO Droid <NA> gold yellow
3 R2-D2 Droid <NA> white, blue red
4 Darth Vader Human none white yellow
5 Leia Organa Human brown light brown
6 Owen Lars Human brown, grey light blue
7 Beru Whitesun Lars Human brown light blue
8 R5-D4 Droid <NA> white, red red
9 Biggs Darklighter Human black light brown
10 Obi-Wan Kenobi Human auburn, white fair blue-gray
১. dplyr (ডেটা ম্যানিপুলেশন)
dplyr হলো ডেটা ম্যানিপুলেশনের জন্য একটি অত্যন্ত জনপ্রিয় R প্যাকেজ। এর সহজ সিনট্যাক্স এবং বিভিন্ন ফাংশন বা ‘ভার্ব’ ব্যবহার করে খুব সহজেই ডেটাসেট ট্রান্সফর্ম বা পরিবর্তন করা যায়।
প্রয়োজনীয় ফাংশনসমূহ
select(): ডেটা ফ্রেম থেকে নির্দিষ্ট কলাম বেছে নিতে ব্যবহৃত হয়।filter(): নির্দিষ্ট শর্ত অনুযায়ী ডেটার সারি (rows) আলাদা করতে ব্যবহৃত হয়।mutate(): নতুন কলাম তৈরি করতে বা বিদ্যমান কলাম পরিবর্তন করতে ব্যবহৃত হয়।arrange(): কলামের মানের ভিত্তিতে ডেটাকে ছোট থেকে বড় বা বড় থেকে ছোট ক্রমে সাজাতে ব্যবহৃত হয়।summarise(): অনেকগুলো ডেটাকে সংক্ষিপ্ত করে একটি সামারি রিপোর্ট তৈরি করে।group_by(): বিভিন্ন গ্রুপ অনুযায়ী ডেটাকে ভাগ করে হিসাব করতে ব্যবহৃত হয়।
# A tibble: 10 × 5
name species hair_color skin_color eye_color
<chr> <chr> <chr> <chr> <chr>
1 Luke Skywalker Human blond fair blue
2 C-3PO Droid <NA> gold yellow
3 R2-D2 Droid <NA> white, blue red
4 Darth Vader Human none white yellow
5 Leia Organa Human brown light brown
6 Owen Lars Human brown, grey light blue
7 Beru Whitesun Lars Human brown light blue
8 R5-D4 Droid <NA> white, red red
9 Biggs Darklighter Human black light brown
10 Obi-Wan Kenobi Human auburn, white fair blue-gray
# A tibble: 10 × 4
name height mass species
<chr> <dbl> <dbl> <chr>
1 Luke Skywalker 1.72 77 Human
2 C-3PO 1.67 75 Droid
3 R2-D2 0.96 32 Droid
4 Darth Vader 2.02 136 Human
5 Leia Organa 1.5 49 Human
6 Owen Lars 1.78 120 Human
7 Beru Whitesun Lars 1.65 75 Human
8 R5-D4 0.97 32 Droid
9 Biggs Darklighter 1.83 84 Human
10 Obi-Wan Kenobi 1.82 77 Human
# A tibble: 10 × 3
genus order sleep_total
<chr> <chr> <dbl>
1 Giraffa Artiodactyla 1.9
2 Globicephalus Cetacea 2.7
3 Equus Perissodactyla 2.9
4 Capreolus Artiodactyla 3
5 Equus Perissodactyla 3.1
6 Loxodonta Proboscidea 3.3
7 Phoca Carnivora 3.5
8 Ovis Artiodactyla 3.8
9 Elephas Proboscidea 3.9
10 Bos Artiodactyla 4
Code
# A tibble: 10 × 5
name hair_color skin_color eye_color species
<chr> <chr> <chr> <chr> <chr>
1 Luke Skywalker blond fair blue Human
2 C-3PO <NA> gold yellow Robot
3 R2-D2 <NA> white, blue red Robot
4 Darth Vader none white yellow Human
5 Leia Organa brown light brown Human
6 Owen Lars brown, grey light blue Human
7 Beru Whitesun Lars brown light blue Human
8 R5-D4 <NA> white, red red Robot
9 Biggs Darklighter black light brown Human
10 Obi-Wan Kenobi auburn, white fair blue-gray Human
Code
# A tibble: 2 × 3
sex `Average height` `Average mass`
<chr> <dbl> <dbl>
1 female 1.72 54.7
2 male 1.78 80.2
২. ggplot2 (ডেটা ভিজ্যুয়ালাইজেশন)
ggplot2 হলো ডেটা ভিজ্যুয়ালাইজেশনের জন্য একটি শক্তিশালী প্যাকেজ। এর মাধ্যমে আপনি খুব সুন্দর এবং জটিল গ্রাফ বা চার্ট তৈরি করতে পারেন।
প্রয়োজনীয় ফাংশনসমূহ
ggplot(): একটি প্লট অবজেক্ট শুরু করে।geom_point(): স্ক্যাটার প্লট তৈরি করতে ব্যবহৃত হয়।geom_line(): ট্রেন্ড বা পরিবর্তনের জন্য লাইন চার্ট তৈরি করে।geom_bar(): বার চার্ট তৈরি করে।facet_wrap()/facet_grid(): Create subplots based on factors.labs(): গ্রাফের শিরোনাম, অক্ষের নাম ইত্যাদি পরিবর্তন করতে ব্যবহৃত হয়।
Code
if(!require(pacman)) install.packages("pacman")
pacman::p_load(tidyverse, plotly, ggridges)
library(palmerpenguins)
ggplot(data = penguins,
aes(x = flipper_length_mm,
y = body_mass_g,
color = species)) +
geom_point(size = 3,
alpha = 0.5)+
labs(title =
"Flipper Length vs Body Mass by Species",
x = "Flipper Length (mm)",
y = "Body Mass (g)") +
theme_minimal()Code
chickwts %>%
group_by(feed) %>%
mutate(mean_by_feed = mean(weight)) %>%
ungroup() %>%
mutate(feed = fct_reorder(feed, mean_by_feed)) %>%
ggplot(aes(x = feed,
y = weight,
colour = feed)) +
coord_flip() +
geom_jitter(show.legend = F,
size = 4,
alpha = 0.2,
width = 0.05) +
geom_point(stat = "summary",
fun = "mean",
size = 8,
show.legend = F)+
geom_hline(aes(yintercept = mean(weight)),
colour = "gray70",
size = 0.9) +
geom_segment(aes(
x = feed,
y = mean(weight),
xend = feed,
yend = mean_by_feed),
size = 2,
show.legend = F) +
labs(title = "Weight of chickens by feed group",
x = "Feed",
y = "Weight of chickens") +
theme(legend.position = "none") +
theme_minimal()Code
library(ggridges)
library(viridis)
ggplot(lincoln_weather,
aes(x = `Mean Temperature [F]`,
y = `Month`,
fill = ..x..)) +
geom_density_ridges_gradient(scale = 3,
rel_min_height = 0.01,
alpha = 5) +
scale_fill_viridis(name = "Temp. [F]",
option = "C") +
labs(title = 'Temperatures in Lincoln NE in 2016') +
theme_bw() +
theme(
legend.position="none",
panel.spacing = unit(0.1, "lines"),
strip.text.x = element_text(size = 8)
)৩. forcats (ফ্যাক্টর বা ক্যাটাগরি ডেটা)
forcats প্যাকেজটি ক্যাটাগরিকাল ডেটা বা ফ্যাক্টর নিয়ে কাজ করার জন্য ব্যবহৃত হয়। এটি ফ্যাক্টরের অর্ডার বা নাম পরিবর্তন করা সহজ করে দেয়।
প্রয়োজনীয় ফাংশনসমূহ
fct_relevel(): ফ্যাক্টর লেভেলগুলোর ক্রম ম্যানুয়ালি পরিবর্তন করতে ব্যবহৃত হয়।fct_reorder(): অন্য কোনো ভেরিয়েবলের মানের ওপর ভিত্তি করে লেভেলগুলো সাজাতে ব্যবহৃত হয়।fct_infreq(): ফ্রিকোয়েন্সি বা কতবার আছে তার ওপর ভিত্তি করে লেভেলগুলো সাজায়।fct_rev(): ফ্যাক্টর লেভেলগুলোর বর্তমান ক্রমকে উল্টে দেয়।
Code
gss_cat %>%
group_by(relig) %>%
summarise(meantv = mean(tvhours, na.rm = T)) %>%
mutate(relig = fct_reorder(relig, meantv)) %>%
ggplot(aes(meantv, relig))+
geom_point(size = 4,
color = "steelblue")+
theme_minimal()+
labs(title = "Average TV watchtime by religion",
x = "Averate TV watch time",
y = "")৪. stringr (টেক্সট ম্যানিপুলেশন)
stringr প্যাকেজটি টেক্সট বা স্ট্রিং ডেটা নিয়ে কাজ করার জন্য ব্যবহৃত হয়। এটি দিয়ে টেক্সট খোঁজা, পরিবর্তন করা বা জোড়া লাগানো যায়।
প্রয়োজনীয় ফাংশনসমূহ
str_c(): দুই বা ততোধিক টেক্সট বা স্ট্রিংকে একত্রে জোড়া লাগানোর জন্য এটি ব্যবহার করা হয় (যেমন: ‘Hello’ এবং ‘World’ মিলে ‘Hello World’ করা)।str_detect(): কোনো টেক্সটের ভেতরে নির্দিষ্ট কোনো শব্দ বা প্যাটার্ন আছে কি না, তা খুঁজে বের করতে এটি ব্যবহৃত হয় (এটি TRUE বা FALSE রেজাল্ট দেয়)।str_sub(): একটি বড় টেক্সট থেকে নির্দিষ্ট কোনো অংশ কেটে আলাদা করা বা এক্সট্র্যাক্ট করার জন্য এটি ব্যবহার করা হয়।str_to_upper(): টেক্সটের সব অক্ষরকে বড় হাতের অক্ষরে (Uppercase) রূপান্তর করতে এটি ব্যবহার করা হয়।str_replace(): টেক্সটের কোনো নির্দিষ্ট অংশ খুঁজে সেটি পরিবর্তন করে নতুন কিছু বসানোর জন্য এটি ব্যবহৃত হয়।str_split(): একটি স্ট্রিং বা বাক্যকে নির্দিষ্ট কোনো চিহ্নের (যেমন: কমা বা স্পেস) ভিত্তিতে কয়েকটি ভাগে ভাগ করতে এটি ব্যবহার করা হয়।
Code
Species Sepal.Length Description
1 setosa 5.1 setosa: 5.1 cm
2 setosa 4.9 setosa: 4.9 cm
3 setosa 4.7 setosa: 4.7 cm
4 setosa 4.6 setosa: 4.6 cm
5 setosa 5.0 setosa: 5 cm
6 setosa 5.4 setosa: 5.4 cm
7 setosa 4.6 setosa: 4.6 cm
8 setosa 5.0 setosa: 5 cm
9 setosa 4.4 setosa: 4.4 cm
10 setosa 4.9 setosa: 4.9 cm
Code
model mpg cyl disp
1 Mazda RX4 21.0 6 160.0
2 Mazda RX4 Wag 21.0 6 160.0
3 Merc 240D 24.4 4 146.7
4 Merc 230 22.8 4 140.8
5 Merc 280 19.2 6 167.6
6 Merc 280C 17.8 6 167.6
7 Merc 450SE 16.4 8 275.8
8 Merc 450SL 17.3 8 275.8
9 Merc 450SLC 15.2 8 275.8
10 AMC Javelin 15.2 8 304.0
Code
model short name mpg cyl disp
1 Mazda RX4 Maz 21.0 6 160.0
2 Mazda RX4 Wag Maz 21.0 6 160.0
3 Datsun 710 Dat 22.8 4 108.0
4 Hornet 4 Drive Hor 21.4 6 258.0
5 Hornet Sportabout Hor 18.7 8 360.0
6 Valiant Val 18.1 6 225.0
7 Duster 360 Dus 14.3 8 360.0
8 Merc 240D Mer 24.4 4 146.7
9 Merc 230 Mer 22.8 4 140.8
10 Merc 280 Mer 19.2 6 167.6
# A tibble: 10 × 2
name species
<chr> <chr>
1 Luke Skywalker HUMAN
2 C-3PO DROID
3 R2-D2 DROID
4 Darth Vader HUMAN
5 Leia Organa HUMAN
6 Owen Lars HUMAN
7 Beru Whitesun Lars HUMAN
8 R5-D4 DROID
9 Biggs Darklighter HUMAN
10 Obi-Wan Kenobi HUMAN
৫. gtExtras (টেবিল ডিজাইন এবং স্টাইলিং)
gtExtras হলো gt প্যাকেজের একটি শক্তিশালী এক্সটেনশন। এটি টেবিলকে আরও আকর্ষণীয় করে তুলতে বিভিন্ন স্টাইলিং অপশন এবং ভিজ্যুয়াল এলিমেন্ট (যেমন: ছোট গ্রাফ বা কালার বক্স) যোগ করতে সাহায্য করে।
প্রয়োজনীয় ফাংশনসমূহ
gt_color_box(): টেবিলের সেলের মানের পেছনে রঙিন শ্যাডিং যোগ করে।gt_highlight_rows(): টেবিলের নির্দিষ্ট সারিগুলোকে হাইলাইট বা আলাদা করে দেখায়।gt_plt_sparkline(): টেবিল সেলের ভেতরেই ছোট ট্রেন্ড লাইন বা স্পার্কলাইন যোগ করে।gt_fa_repeats(): মান অনুযায়ী ফন্ট-অসাম(Font-awesome) আইকন ব্যবহার করে ডেটাকে প্রকাশ করে।
Code
library(gtExtras)
library(gapminder)
library(RColorBrewer)
library(svglite)
gapminder %>%
rename(Country = country) %>%
filter(continent == "Europe") %>%
group_by(Country) %>%
summarise(`GDP per capita` = round(mean(gdpPercap)),
`Pop size` = round(mean(pop)),
`Life expectance` = list(lifeExp)) %>%
arrange(-`GDP per capita`) %>%
head(10) %>%
gt() %>%
gt_theme_pff() %>%
gt_plt_dist('Life expectance') %>%
gt_color_rows(column = 'Pop size',
palette = "Pastel1") %>%
gt_plt_bar_pct('GDP per capita',
fill = "steelblue",
height = 15,
width = 120) %>%
tab_header(title = "The GDP and Pop Size of Europe") %>%
cols_align(align = "left")| The GDP and Pop Size of Europe | |||
|---|---|---|---|
| Country | GDP per capita | Pop size | Life expectance |
| Switzerland | 6384293 | ||
| Norway | 4031441 | ||
| Netherlands | 13786798 | ||
| Denmark | 4994187 | ||
| Germany | 77547043 | ||
| Iceland | 226978 | ||
| Austria | 7583298 | ||
| Sweden | 8220029 | ||
| Belgium | 9725119 | ||
| United Kingdom | 56087801 | ||
Code
| Life Expectancy, Population and GDP in 1972 | |||||
|---|---|---|---|---|---|
| country | continent | year | lifeExp | pop | gdpPercap |
| Afghanistan | Asia | 1952 | 28.801 | 8425333 | 779.4453 |
| Afghanistan | Asia | 1957 | 30.332 | 9240934 | 820.8530 |
| Afghanistan | Asia | 1962 | 31.997 | 10267083 | 853.1007 |
| Afghanistan | Asia | 1967 | 34.020 | 11537966 | 836.1971 |
| Afghanistan | Asia | 1972 | 36.088 | 13079460 | 739.9811 |
| Afghanistan | Asia | 1977 | 38.438 | 14880372 | 786.1134 |
| Afghanistan | Asia | 1982 | 39.854 | 12881816 | 978.0114 |
| Afghanistan | Asia | 1987 | 40.822 | 13867957 | 852.3959 |
| Afghanistan | Asia | 1992 | 41.674 | 16317921 | 649.3414 |
| Afghanistan | Asia | 1997 | 41.763 | 22227415 | 635.3414 |
৬. plotly (ইন্টারেক্টিভ প্লট)
plotly হলো এমন একটি প্যাকেজ যা ওয়েব-বেজড ইন্টারেক্টিভ প্লট বা গ্রাফ তৈরি করতে ব্যবহৃত হয়। এটি সাধারণত ggplot2-এ তৈরি করা গ্রাফগুলোকে আরও উন্নত করতে এবং সেগুলোতে জুম করা বা মাউস নিয়ে তথ্য দেখার মতো সুবিধা যোগ করতে ব্যবহার করা হয়।
প্রয়োজনীয় ফাংশনসমূহ
plot_ly(): নতুন একটি ইন্টারেক্টিভ প্লট তৈরি করতে ব্যবহৃত হয়।ggplotly(): ggplot2-এ তৈরি গ্রাফকে ইন্টারেক্টিভ প্লটে রূপান্তর করে।layout(): প্লটের লেআউট এবং ডিজাইন কাস্টমাইজ করতে ব্যবহৃত হয়।add_trace(): গ্রাফে নতুন কোনো ডেটা বা লেয়ার যোগ করতে ব্যবহৃত হয়।
Code
library(plotly)
p <- starwars %>%
drop_na(height, mass, eye_color) %>%
filter(mass < 250) %>%
filter(eye_color %in% c("blue",
"brown",
"black",
"pink",
"red",
"orange")) %>%
ggplot(aes(x = height,
y = mass,
color = eye_color))+
geom_jitter(size = 6,
alpha = 0.5)+
scale_color_manual(values = c("blue" = "blue",
"brown" = "brown",
"black" = "black",
"pink" = "pink",
"red" = "red",
"orange" = "orange"))+
theme_minimal()+
theme(legend.position = c(0.05,0.98),
legend.justification = c("left", "top"))+ #<35
labs(title = "height, mass and eye color",
x = "Height of characters",
y = "Mass of characters",
color = "Eye Color")
ggplotly(p) সহজ এবং সংক্ষিপ্ত ভিডিও কন্টেন্টের মাধ্যমে R এবং স্ট্যাটিস্টিকস শিখতে ভিজিট করুন premieranalytics.com.bd। আমাদের প্রতিটি লেসন এমন ডেটা দিয়ে তৈরি যা আপনার R-এই দেওয়া আছে, ফলে আপনি বাড়িতে সহজেই প্র্যাকটিস করতে পারবেন। এখানে পরিসংখ্যান এবং গবেষণা পদ্ধতির ওপরও বিস্তারিত শিখানো হয়।