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
  1. 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 ...
  1. 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
  1. 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
  1. 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
  1. 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
  1. 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
  1. 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
  1. . 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
  1. 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>
  1. . 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>