#library(gapminder)
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.3
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
Dataset ini memiliki struktur negara-tahun. Dataset ini berisi informasi selama lebih dari satu dekade mengenai donasi organ untuk transplantasi di tujuh belas negara OECD. Tingkat pengadaan organ adalah ukuran jumlah organ manusia yang diperoleh dari donor organ mayat untuk digunakan dalam operasi transplantasi. Bersamaan dengan data donasi ini, dataset ini memiliki berbagai ukuran demo-grafis numerik, dan beberapa ukuran kategoris dari kebijakan dan hukum kesehatan dan kesejahteraan. Beberapa pengamatan tidak ada. Hal ini ditandai dengan nilai NA, kode standar R untuk data yang hilang. Memuat data menggunakan fungsi read.csv().
country : Nama negara. year : Tahun. donors : Tingkat donasi organ per juta penduduk. pop : Populasi dalam ribuan. pop_dens : Kepadatan penduduk per mil persegi. gdp : Produk Domestik Bruto dalam ribuan dolar PPP. gdp_lag: Produk Domestik Bruto yang tertinggal dalam ribuan dolar PPP. health : Pengeluaran kesehatan, ribuan dolar PPP per kapita. health_lag : Pengeluaran kesehatan yang tertinggal, dalam ribuan dolar PPP per kapita. pubhealth : Pengeluaran kesehatan masyarakat sebagai persentase dari total pengeluaran. roads : Kematian akibat kecelakaan di jalan raya per 100.000 penduduk. cerebvas : Kematian akibat serebrovaskular per 100.000 penduduk (dibulatkan). assault : Kematian akibat penyerangan per 100.000 penduduk (dibulatkan). external : Kematian karena penyebab eksternal per 100.000 penduduk. txp_pop : Program transplantasi per satu juta penduduk. world : Dunia negara kesejahteraan (Esping Andersen.) opt : Kebijakan keikutsertaan atau kebijakan tidak ikut serta. consent_law : Hukum persetujuan, berdasarkan informasi atau praduga. consent_practice : Praktik persetujuan, diinformasikan atau diduga. consistent : Hukum yang konsisten dengan praktik, ya atau tidak. ccode : Kode negara yang disingkat
orgdat <- read.csv("organdata.csv", header = T)
head(orgdat)
nrow(orgdat)
## [1] 238
ncol(orgdat)
## [1] 21
str(orgdat)
## 'data.frame': 238 obs. of 21 variables:
## $ country : chr "Australia" "Australia" "Australia" "Australia" ...
## $ year : chr NA "1/1/91" "1/1/92" "1/1/93" ...
## $ donors : num NA 12.1 12.3 12.5 10.2 ...
## $ pop : int 17065 17284 17495 17667 17855 18072 18311 18518 18711 18926 ...
## $ pop_dens : num 0.22 0.223 0.226 0.228 0.231 ...
## $ gdp : int 16774 17171 17914 18883 19849 21079 21923 22961 24148 25445 ...
## $ gdp_lag : int 16591 16774 17171 17914 18883 19849 21079 21923 22961 24148 ...
## $ health : num 1300 1379 1455 1540 1626 ...
## $ health_lag : num 1224 1300 1379 1455 1540 ...
## $ pubhealth : num 4.8 5.4 5.4 5.4 5.4 5.5 5.6 5.7 5.9 6.1 ...
## $ roads : num 137 122 113 111 108 ...
## $ cerebvas : int 682 647 630 611 631 592 576 525 516 493 ...
## $ assault : int 21 19 17 18 17 16 17 17 16 15 ...
## $ external : int 444 425 406 376 387 371 395 385 410 409 ...
## $ txp_pop : num 0.938 0.926 0.915 0.906 0.896 ...
## $ world : chr "Liberal" "Liberal" "Liberal" "Liberal" ...
## $ opt : chr "In" "In" "In" "In" ...
## $ consent_law : chr "Informed" "Informed" "Informed" "Informed" ...
## $ consent_practice: chr "Informed" "Informed" "Informed" "Informed" ...
## $ consistent : chr "Yes" "Yes" "Yes" "Yes" ...
## $ ccode : chr "Oz" "Oz" "Oz" "Oz" ...
Bagaimana jika mencoba sesuatu yang berbeda? Alih-alih menggunakan head(), mari kita buat sebuah pipeline pendek untuk memilih enam kolom pertama dari dataset dan kemudian memilih lima baris secara acak menggunakan sebuah fungsi bernama sample_n(). Fungsi ini membutuhkan dua argumen utama. Pertama, kita menyediakan tabel data yang ingin kita ambil sampelnya. Karena kita menggunakan pipeline, hal ini secara implisit diturunkan dari awal pipa. Kemudian kita menyediakan jumlah penarikan yang ingin kita buat
orgdat %>% select(1:6) %>% sample_n(size = 10)
#
Plot sebaran naif donor vs tahun:
p1 <- ggplot(data = orgdat, mapping = aes(x = year, y = donors)) #aes untuk warna
p1 + geom_point()
## Warning: Removed 34 rows containing missing values or values outside the scale range
## (`geom_point()`).
Selalu menghargai peringatan Anda. Kali ini, apa yang dikatakannya?
Menurutmu apa artinya? Kembali ke plot sebar. Informasi apa yang Anda
peroleh dari plot tersebut? Dari skala 1 - 10, bagaimana Anda menilai
keakuratannya? Kita dapat menggunakan geom_line() untuk memplot deret
waktu setiap negara. Untuk melakukan hal tersebut, ingatlah, kita perlu
memberi tahu ggplot apa variabel pengelompokannya. Kali ini kita juga
dapat melihat angka berdasarkan negara, karena kita tidak memiliki
terlalu banyak negara
p2 <- ggplot(data = orgdat, mapping = aes(x = year, y = donors))
p2 + geom_line(aes(group = country)) + facet_wrap(~country)
## Warning: Removed 34 rows containing missing values or values outside the scale range
## (`geom_line()`).
p3 <- ggplot(data = orgdat, mapping = aes(x = country, y = donors))
p3 + geom_boxplot()
## Warning: Removed 34 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
p3 <- ggplot(data = orgdat, mapping = aes(x = country, y = donors))
p3 + geom_boxplot() + coord_flip()
## Warning: Removed 34 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
p3 <- ggplot(data = orgdat, mapping = aes(x = reorder(country, donors, na.rm = TRUE), y = donors))
p3 + geom_boxplot() + coord_flip() + labs(x = NULL, y = "Donors")
## Warning: Removed 34 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
p4 <- ggplot(data = orgdat,
mapping = aes(x = reorder(country, donors, na.rm=TRUE),
y = donors, color = world))
p4 + geom_point() + labs(x=NULL, y = "Donors") + coord_flip() + theme(legend.position = "top")
## Warning: Removed 34 rows containing missing values or values outside the scale range
## (`geom_point()`).
p4 <- ggplot(data = orgdat,
mapping = aes(x = reorder(country, donors, na.rm=TRUE),
y = donors, color = world))
p4 + geom_jitter() + labs(x=NULL, y = "Donors") + coord_flip() + theme(legend.position = "top")
## Warning: Removed 34 rows containing missing values or values outside the scale range
## (`geom_point()`).