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
data <- read.csv(file="C:/Users/ASUS/Downloads/msleep.csv")
sleep1 <- as_tibble(data)
glimpse(sleep1)
## Rows: 83
## Columns: 11
## $ name <chr> "Cheetah", "Owl monkey", "Mountain beaver", "Greater shor…
## $ genus <chr> "Acinonyx", "Aotus", "Aplodontia", "Blarina", "Bos", "Bra…
## $ vore <chr> "carni", "omni", "herbi", "omni", "herbi", "herbi", "carn…
## $ order <chr> "Carnivora", "Primates", "Rodentia", "Soricomorpha", "Art…
## $ conservation <chr> "lc", NA, "nt", "lc", "domesticated", NA, "vu", NA, "dome…
## $ sleep_total <dbl> 12.1, 17.0, 14.4, 14.9, 4.0, 14.4, 8.7, 7.0, 10.1, 3.0, 5…
## $ sleep_rem <dbl> NA, 1.8, 2.4, 2.3, 0.7, 2.2, 1.4, NA, 2.9, NA, 0.6, 0.8, …
## $ sleep_cycle <dbl> NA, NA, NA, 0.1333333, 0.6666667, 0.7666667, 0.3833333, N…
## $ awake <dbl> 11.9, 7.0, 9.6, 9.1, 20.0, 9.6, 15.3, 17.0, 13.9, 21.0, 1…
## $ brainwt <dbl> NA, 0.01550, NA, 0.00029, 0.42300, NA, NA, NA, 0.07000, 0…
## $ bodywt <dbl> 50.000, 0.480, 1.350, 0.019, 600.000, 3.850, 20.490, 0.04…
msleep <- read.csv("C:/Users/ASUS/Downloads/msleep.csv"); head(msleep)
## name genus vore order conservation
## 1 Cheetah Acinonyx carni Carnivora lc
## 2 Owl monkey Aotus omni Primates <NA>
## 3 Mountain beaver Aplodontia herbi Rodentia nt
## 4 Greater short-tailed shrew Blarina omni Soricomorpha lc
## 5 Cow Bos herbi Artiodactyla domesticated
## 6 Three-toed sloth Bradypus herbi Pilosa <NA>
## sleep_total sleep_rem sleep_cycle awake brainwt bodywt
## 1 12.1 NA NA 11.9 NA 50.000
## 2 17.0 1.8 NA 7.0 0.01550 0.480
## 3 14.4 2.4 NA 9.6 NA 1.350
## 4 14.9 2.3 0.1333333 9.1 0.00029 0.019
## 5 4.0 0.7 0.6666667 20.0 0.42300 600.000
## 6 14.4 2.2 0.7666667 9.6 NA 3.850
- Panggil file msleep.csv dengan fungsi read.csv lalu tibble data
tersebut. Lalu sebutkan tipe dari masingmasing variabel. Jawab:
library(tibble)
## Warning: package 'tibble' was built under R version 4.3.3
tibble <- as.tibble(msleep)
## Warning: `as.tibble()` was deprecated in tibble 2.0.0.
## ℹ Please use `as_tibble()` instead.
## ℹ The signature and semantics have changed, see `?as_tibble`.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
str(tibble)
## tibble [83 × 11] (S3: tbl_df/tbl/data.frame)
## $ name : chr [1:83] "Cheetah" "Owl monkey" "Mountain beaver" "Greater short-tailed shrew" ...
## $ genus : chr [1:83] "Acinonyx" "Aotus" "Aplodontia" "Blarina" ...
## $ vore : chr [1:83] "carni" "omni" "herbi" "omni" ...
## $ order : chr [1:83] "Carnivora" "Primates" "Rodentia" "Soricomorpha" ...
## $ conservation: chr [1:83] "lc" NA "nt" "lc" ...
## $ sleep_total : num [1:83] 12.1 17 14.4 14.9 4 14.4 8.7 7 10.1 3 ...
## $ sleep_rem : num [1:83] NA 1.8 2.4 2.3 0.7 2.2 1.4 NA 2.9 NA ...
## $ sleep_cycle : num [1:83] NA NA NA 0.133 0.667 ...
## $ awake : num [1:83] 11.9 7 9.6 9.1 20 9.6 15.3 17 13.9 21 ...
## $ brainwt : num [1:83] NA 0.0155 NA 0.00029 0.423 NA NA NA 0.07 0.0982 ...
## $ bodywt : num [1:83] 50 0.48 1.35 0.019 600 ...
- Pilih kolom yang memuat kata berawalan “sl”. Lalu tampilkan 3
pengamatan pertama.
library(dplyr)
head (msleep %>% select(starts_with("sl")), n=3)
## sleep_total sleep_rem sleep_cycle
## 1 12.1 NA NA
## 2 17.0 1.8 NA
## 3 14.4 2.4 NA
- Susun data dalam urutan naik berdasarkan kolom order. Lalu tampilkan
3 pengamatan pertama.
head(msleep %>% arrange(order), n=3)
## name genus vore order conservation sleep_total sleep_rem
## 1 Tenrec Tenrec omni Afrosoricida <NA> 15.6 2.3
## 2 Cow Bos herbi Artiodactyla domesticated 4.0 0.7
## 3 Roe deer Capreolus herbi Artiodactyla lc 3.0 NA
## sleep_cycle awake brainwt bodywt
## 1 NA 8.4 0.0026 0.9
## 2 0.6666667 20.0 0.4230 600.0
## 3 NA 21.0 0.0982 14.8
- Susun data yang terdiri dari name, order, sleep_total dalam urutan
naik berdasarkan kolom order dan sleep_total. Lalu tampilkan 3
pengamatan pertama.
head(msleep %>% select(name, order, sleep_total) %>% arrange(order), n = 3)
## name order sleep_total
## 1 Tenrec Afrosoricida 15.6
## 2 Cow Artiodactyla 4.0
## 3 Roe deer Artiodactyla 3.0
- Buat variabel baru rem_proportion yang didefinisikan sebagai
sleep_rem dibagi dengan sleep_total lalu tambahkan pada data. Lalu
tampilkan 3 pengamatan pertama.
head(msleep %>% mutate(rem_proportion = sleep_rem/sleep_total), n = 3)
## name genus vore order conservation sleep_total sleep_rem
## 1 Cheetah Acinonyx carni Carnivora lc 12.1 NA
## 2 Owl monkey Aotus omni Primates <NA> 17.0 1.8
## 3 Mountain beaver Aplodontia herbi Rodentia nt 14.4 2.4
## sleep_cycle awake brainwt bodywt rem_proportion
## 1 NA 11.9 NA 50.00 NA
## 2 NA 7.0 0.0155 0.48 0.1058824
## 3 NA 9.6 NA 1.35 0.1666667
- Buat variabel baru rem_proportion yang didefinisikan sebagai
sleep_rem dibagi dengan sleep_total dan bodywt_grams yang didefinisikan
sebagai bodywt * 1000 lalu tambahkan pada data. Lalu tampilkan 3
pengamatan pertama
head(msleep %>% mutate(rem_proportion = sleep_rem/sleep_total,bodywt_grams = bodywt
*1000), n=3)
## name genus vore order conservation sleep_total sleep_rem
## 1 Cheetah Acinonyx carni Carnivora lc 12.1 NA
## 2 Owl monkey Aotus omni Primates <NA> 17.0 1.8
## 3 Mountain beaver Aplodontia herbi Rodentia nt 14.4 2.4
## sleep_cycle awake brainwt bodywt rem_proportion bodywt_grams
## 1 NA 11.9 NA 50.00 NA 50000
## 2 NA 7.0 0.0155 0.48 0.1058824 480
## 3 NA 9.6 NA 1.35 0.1666667 1350
- Buat ringkasan statistik rata-rata, simpangan baku, minimum,
maksimum dan total dari sleep_total berdasarkan grup order.
msleep %>% group_by(order)%>% summarise(avg= mean(sleep_total), min= min(sleep_total), max = max(sleep_total), sd=sd(sleep_total), total = n())
## # A tibble: 19 × 6
## order avg min max sd total
## <chr> <dbl> <dbl> <dbl> <dbl> <int>
## 1 Afrosoricida 15.6 15.6 15.6 NA 1
## 2 Artiodactyla 4.52 1.9 9.1 2.51 6
## 3 Carnivora 10.1 3.5 15.8 3.50 12
## 4 Cetacea 4.5 2.7 5.6 1.57 3
## 5 Chiroptera 19.8 19.7 19.9 0.141 2
## 6 Cingulata 17.8 17.4 18.1 0.495 2
## 7 Didelphimorphia 18.7 18 19.4 0.990 2
## 8 Diprotodontia 12.4 11.1 13.7 1.84 2
## 9 Erinaceomorpha 10.2 10.1 10.3 0.141 2
## 10 Hyracoidea 5.67 5.3 6.3 0.551 3
## 11 Lagomorpha 8.4 8.4 8.4 NA 1
## 12 Monotremata 8.6 8.6 8.6 NA 1
## 13 Perissodactyla 3.47 2.9 4.4 0.814 3
## 14 Pilosa 14.4 14.4 14.4 NA 1
## 15 Primates 10.5 8 17 2.21 12
## 16 Proboscidea 3.6 3.3 3.9 0.424 2
## 17 Rodentia 12.5 7 16.6 2.81 22
## 18 Scandentia 8.9 8.9 8.9 NA 1
## 19 Soricomorpha 11.1 8.4 14.9 2.70 5
- . Buat ringkasan statistik rata-rata, simpangan baku, minimum,
maksimum dan total untuk semua variabel numerik berdasarkan grup
order.
msleep <- as_tibble(msleep)
glimpse(msleep)
## Rows: 83
## Columns: 11
## $ name <chr> "Cheetah", "Owl monkey", "Mountain beaver", "Greater shor…
## $ genus <chr> "Acinonyx", "Aotus", "Aplodontia", "Blarina", "Bos", "Bra…
## $ vore <chr> "carni", "omni", "herbi", "omni", "herbi", "herbi", "carn…
## $ order <chr> "Carnivora", "Primates", "Rodentia", "Soricomorpha", "Art…
## $ conservation <chr> "lc", NA, "nt", "lc", "domesticated", NA, "vu", NA, "dome…
## $ sleep_total <dbl> 12.1, 17.0, 14.4, 14.9, 4.0, 14.4, 8.7, 7.0, 10.1, 3.0, 5…
## $ sleep_rem <dbl> NA, 1.8, 2.4, 2.3, 0.7, 2.2, 1.4, NA, 2.9, NA, 0.6, 0.8, …
## $ sleep_cycle <dbl> NA, NA, NA, 0.1333333, 0.6666667, 0.7666667, 0.3833333, N…
## $ awake <dbl> 11.9, 7.0, 9.6, 9.1, 20.0, 9.6, 15.3, 17.0, 13.9, 21.0, 1…
## $ brainwt <dbl> NA, 0.01550, NA, 0.00029, 0.42300, NA, NA, NA, 0.07000, 0…
## $ bodywt <dbl> 50.000, 0.480, 1.350, 0.019, 600.000, 3.850, 20.490, 0.04…
apply(msleep, 2, function(x)any(is.na(x)))
## name genus vore order conservation sleep_total
## FALSE FALSE TRUE FALSE TRUE FALSE
## sleep_rem sleep_cycle awake brainwt bodywt
## TRUE TRUE FALSE TRUE FALSE
library(tidyr)
## Warning: package 'tidyr' was built under R version 4.3.3
library(dplyr)
sleep1 <- msleep %>% drop_na
sleep1
## # A tibble: 20 × 11
## name genus vore order conservation sleep_total sleep_rem sleep_cycle awake
## <chr> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Great… Blar… omni Sori… lc 14.9 2.3 0.133 9.1
## 2 Cow Bos herbi Arti… domesticated 4 0.7 0.667 20
## 3 Dog Canis carni Carn… domesticated 10.1 2.9 0.333 13.9
## 4 Guine… Cavis herbi Rode… domesticated 9.4 0.8 0.217 14.6
## 5 Chinc… Chin… herbi Rode… domesticated 12.5 1.5 0.117 11.5
## 6 Lesse… Cryp… omni Sori… lc 9.1 1.4 0.15 14.9
## 7 Long-… Dasy… carni Cing… lc 17.4 3.1 0.383 6.6
## 8 North… Dide… omni Dide… lc 18 4.9 0.333 6
## 9 Big b… Epte… inse… Chir… lc 19.7 3.9 0.117 4.3
## 10 Horse Equus herbi Peri… domesticated 2.9 0.6 1 21.1
## 11 Europ… Erin… omni Erin… lc 10.1 3.5 0.283 13.9
## 12 Domes… Felis carni Carn… domesticated 12.5 3.2 0.417 11.5
## 13 Golde… Meso… herbi Rode… en 14.3 3.1 0.2 9.7
## 14 House… Mus herbi Rode… nt 12.5 1.4 0.183 11.5
## 15 Rabbit Oryc… herbi Lago… domesticated 8.4 0.9 0.417 15.6
## 16 Labor… Ratt… herbi Rode… lc 13 2.4 0.183 11
## 17 Easte… Scal… inse… Sori… lc 8.4 2.1 0.167 15.6
## 18 Thirt… Sper… herbi Rode… lc 13.8 3.4 0.217 10.2
## 19 Pig Sus omni Arti… domesticated 9.1 2.4 0.5 14.9
## 20 Brazi… Tapi… herbi Peri… vu 4.4 1 0.9 19.6
## # ℹ 2 more variables: brainwt <dbl>, bodywt <dbl>
ringkasan.statistik <- sleep1 %>% group_by(order) %>% summarise(avg = mean(c(sleep_total, sleep_rem, sleep_cycle, awake, brainwt, bodywt)), min=min(c(sleep_total, sleep_rem, sleep_cycle, awake, brainwt, bodywt)), max=max(c(sleep_total, sleep_rem, sleep_cycle, awake, brainwt, bodywt)), sd = sd(c(sleep_total, sleep_rem, sleep_cycle, awake, brainwt, bodywt)), total= n())
ringkasan.statistik
## # A tibble: 10 × 6
## order avg min max sd total
## <chr> <dbl> <dbl> <dbl> <dbl> <int>
## 1 Artiodactyla 61.6 0.18 600 171. 2
## 2 Carnivora 6.02 0.0256 14 5.84 2
## 3 Chiroptera 4.67 0.0003 19.7 7.63 1
## 4 Cingulata 5.17 0.0108 17.4 6.45 1
## 5 Didelphimorphia 5.16 0.0063 18 6.74 1
## 6 Erinaceomorpha 4.76 0.0035 13.9 5.87 1
## 7 Lagomorpha 4.64 0.0121 15.6 6.20 1
## 8 Perissodactyla 65.1 0.169 521 155. 2
## 9 Rodentia 4.43 0.0004 14.6 5.58 6
## 10 Soricomorpha 4.35 0.00014 15.6 5.91 3
- Filter semua pengamatan dan semua variabel berdasarkan sleep_total
>= 16. Ada berapa banyak pengamatan setelah melakukan filter?
sleep.filter1 <- sleep1%>% filter(sleep_total>=16)
sleep.filter1
## # A tibble: 3 × 11
## name genus vore order conservation sleep_total sleep_rem sleep_cycle awake
## <chr> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Long-n… Dasy… carni Cing… lc 17.4 3.1 0.383 6.6
## 2 North … Dide… omni Dide… lc 18 4.9 0.333 6
## 3 Big br… Epte… inse… Chir… lc 19.7 3.9 0.117 4.3
## # ℹ 2 more variables: brainwt <dbl>, bodywt <dbl>
- . Filter semua pengamatan dan variabel berdasarkan sleep_total >=
16 dan beratnya minimal 1 kilogram (bodywt > = 1). Ada berapa banyak
pengamatan setelah melakukan filter? Sebutkan nama hewan apa saja?
msleep %>% filter(sleep_total >= 16, bodywt >= 1)
## # A tibble: 3 × 11
## name genus vore order conservation sleep_total sleep_rem sleep_cycle awake
## <chr> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Long-n… Dasy… carni Cing… lc 17.4 3.1 0.383 6.6
## 2 North … Dide… omni Dide… lc 18 4.9 0.333 6
## 3 Giant … Prio… inse… Cing… en 18.1 6.1 NA 5.9
## # ℹ 2 more variables: brainwt <dbl>, bodywt <dbl>