#Data
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.2
## Warning: package 'lubridate' was built under R version 4.3.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.3 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.4.4 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.0
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(datasets)
data("rock")
Batu<- tibble::as.tibble(rock)
## 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.
class(Batu)
## [1] "tbl_df" "tbl" "data.frame"
head(Batu)
## # A tibble: 6 × 4
## area peri shape perm
## <int> <dbl> <dbl> <dbl>
## 1 4990 2792. 0.0903 6.3
## 2 7002 3893. 0.149 6.3
## 3 7558 3931. 0.183 6.3
## 4 7352 3869. 0.117 6.3
## 5 7943 3949. 0.122 17.1
## 6 7979 4010. 0.167 17.1
glimpse(Batu)
## Rows: 48
## Columns: 4
## $ area <int> 4990, 7002, 7558, 7352, 7943, 7979, 9333, 8209, 8393, 6425, 9364…
## $ peri <dbl> 2791.90, 3892.60, 3930.66, 3869.32, 3948.54, 4010.15, 4345.75, 4…
## $ shape <dbl> 0.0903296, 0.1486220, 0.1833120, 0.1170630, 0.1224170, 0.1670450…
## $ perm <dbl> 6.3, 6.3, 6.3, 6.3, 17.1, 17.1, 17.1, 17.1, 119.0, 119.0, 119.0,…
data.frame(Batu)
## area peri shape perm
## 1 4990 2791.900 0.0903296 6.3
## 2 7002 3892.600 0.1486220 6.3
## 3 7558 3930.660 0.1833120 6.3
## 4 7352 3869.320 0.1170630 6.3
## 5 7943 3948.540 0.1224170 17.1
## 6 7979 4010.150 0.1670450 17.1
## 7 9333 4345.750 0.1896510 17.1
## 8 8209 4344.750 0.1641270 17.1
## 9 8393 3682.040 0.2036540 119.0
## 10 6425 3098.650 0.1623940 119.0
## 11 9364 4480.050 0.1509440 119.0
## 12 8624 3986.240 0.1481410 119.0
## 13 10651 4036.540 0.2285950 82.4
## 14 8868 3518.040 0.2316230 82.4
## 15 9417 3999.370 0.1725670 82.4
## 16 8874 3629.070 0.1534810 82.4
## 17 10962 4608.660 0.2043140 58.6
## 18 10743 4787.620 0.2627270 58.6
## 19 11878 4864.220 0.2000710 58.6
## 20 9867 4479.410 0.1448100 58.6
## 21 7838 3428.740 0.1138520 142.0
## 22 11876 4353.140 0.2910290 142.0
## 23 12212 4697.650 0.2400770 142.0
## 24 8233 3518.440 0.1618650 142.0
## 25 6360 1977.390 0.2808870 740.0
## 26 4193 1379.350 0.1794550 740.0
## 27 7416 1916.240 0.1918020 740.0
## 28 5246 1585.420 0.1330830 740.0
## 29 6509 1851.210 0.2252140 890.0
## 30 4895 1239.660 0.3412730 890.0
## 31 6775 1728.140 0.3116460 890.0
## 32 7894 1461.060 0.2760160 890.0
## 33 5980 1426.760 0.1976530 950.0
## 34 5318 990.388 0.3266350 950.0
## 35 7392 1350.760 0.1541920 950.0
## 36 7894 1461.060 0.2760160 950.0
## 37 3469 1376.700 0.1769690 100.0
## 38 1468 476.322 0.4387120 100.0
## 39 3524 1189.460 0.1635860 100.0
## 40 5267 1644.960 0.2538320 100.0
## 41 5048 941.543 0.3286410 1300.0
## 42 1016 308.642 0.2300810 1300.0
## 43 5605 1145.690 0.4641250 1300.0
## 44 8793 2280.490 0.4204770 1300.0
## 45 3475 1174.110 0.2007440 580.0
## 46 1651 597.808 0.2626510 580.0
## 47 5514 1455.880 0.1824530 580.0
## 48 9718 1485.580 0.2004470 580.0
#Menghitung rata rata salah satu kolom contohnya area
mean(Batu$area)
## [1] 7187.729
#atau
Batu$area %>%
mean()
## [1] 7187.729
# Penggunaan summarize
Batu %>%
summarize('Rata-rata Luas'=mean(area),
'Rata-rata Keliling'= mean(peri),
'Luas Batu Terbesar'=max(area),
'Luas Batu Terkecil'=min(area))
## # A tibble: 1 × 4
## `Rata-rata Luas` `Rata-rata Keliling` `Luas Batu Terbesar`
## <dbl> <dbl> <int>
## 1 7188. 2682. 12212
## # ℹ 1 more variable: `Luas Batu Terkecil` <int>
#Penggunaan arrange dengan urutan menaik/ascending
Batu%>%
arrange(area)%>%
print(n=48)
## # A tibble: 48 × 4
## area peri shape perm
## <int> <dbl> <dbl> <dbl>
## 1 1016 309. 0.230 1300
## 2 1468 476. 0.439 100
## 3 1651 598. 0.263 580
## 4 3469 1377. 0.177 100
## 5 3475 1174. 0.201 580
## 6 3524 1189. 0.164 100
## 7 4193 1379. 0.179 740
## 8 4895 1240. 0.341 890
## 9 4990 2792. 0.0903 6.3
## 10 5048 942. 0.329 1300
## 11 5246 1585. 0.133 740
## 12 5267 1645. 0.254 100
## 13 5318 990. 0.327 950
## 14 5514 1456. 0.182 580
## 15 5605 1146. 0.464 1300
## 16 5980 1427. 0.198 950
## 17 6360 1977. 0.281 740
## 18 6425 3099. 0.162 119
## 19 6509 1851. 0.225 890
## 20 6775 1728. 0.312 890
## 21 7002 3893. 0.149 6.3
## 22 7352 3869. 0.117 6.3
## 23 7392 1351. 0.154 950
## 24 7416 1916. 0.192 740
## 25 7558 3931. 0.183 6.3
## 26 7838 3429. 0.114 142
## 27 7894 1461. 0.276 890
## 28 7894 1461. 0.276 950
## 29 7943 3949. 0.122 17.1
## 30 7979 4010. 0.167 17.1
## 31 8209 4345. 0.164 17.1
## 32 8233 3518. 0.162 142
## 33 8393 3682. 0.204 119
## 34 8624 3986. 0.148 119
## 35 8793 2280. 0.420 1300
## 36 8868 3518. 0.232 82.4
## 37 8874 3629. 0.153 82.4
## 38 9333 4346. 0.190 17.1
## 39 9364 4480. 0.151 119
## 40 9417 3999. 0.173 82.4
## 41 9718 1486. 0.200 580
## 42 9867 4479. 0.145 58.6
## 43 10651 4037. 0.229 82.4
## 44 10743 4788. 0.263 58.6
## 45 10962 4609. 0.204 58.6
## 46 11876 4353. 0.291 142
## 47 11878 4864. 0.200 58.6
## 48 12212 4698. 0.240 142
#Penggunaan arrange dengan urutan menurun/descending
Batu %>%
arrange(desc(area)) %>%
print(n=48)
## # A tibble: 48 × 4
## area peri shape perm
## <int> <dbl> <dbl> <dbl>
## 1 12212 4698. 0.240 142
## 2 11878 4864. 0.200 58.6
## 3 11876 4353. 0.291 142
## 4 10962 4609. 0.204 58.6
## 5 10743 4788. 0.263 58.6
## 6 10651 4037. 0.229 82.4
## 7 9867 4479. 0.145 58.6
## 8 9718 1486. 0.200 580
## 9 9417 3999. 0.173 82.4
## 10 9364 4480. 0.151 119
## 11 9333 4346. 0.190 17.1
## 12 8874 3629. 0.153 82.4
## 13 8868 3518. 0.232 82.4
## 14 8793 2280. 0.420 1300
## 15 8624 3986. 0.148 119
## 16 8393 3682. 0.204 119
## 17 8233 3518. 0.162 142
## 18 8209 4345. 0.164 17.1
## 19 7979 4010. 0.167 17.1
## 20 7943 3949. 0.122 17.1
## 21 7894 1461. 0.276 890
## 22 7894 1461. 0.276 950
## 23 7838 3429. 0.114 142
## 24 7558 3931. 0.183 6.3
## 25 7416 1916. 0.192 740
## 26 7392 1351. 0.154 950
## 27 7352 3869. 0.117 6.3
## 28 7002 3893. 0.149 6.3
## 29 6775 1728. 0.312 890
## 30 6509 1851. 0.225 890
## 31 6425 3099. 0.162 119
## 32 6360 1977. 0.281 740
## 33 5980 1427. 0.198 950
## 34 5605 1146. 0.464 1300
## 35 5514 1456. 0.182 580
## 36 5318 990. 0.327 950
## 37 5267 1645. 0.254 100
## 38 5246 1585. 0.133 740
## 39 5048 942. 0.329 1300
## 40 4990 2792. 0.0903 6.3
## 41 4895 1240. 0.341 890
## 42 4193 1379. 0.179 740
## 43 3524 1189. 0.164 100
## 44 3475 1174. 0.201 580
## 45 3469 1377. 0.177 100
## 46 1651 598. 0.263 580
## 47 1468 476. 0.439 100
## 48 1016 309. 0.230 1300
#penggunaan filter
#Memilih beberapa data batu yang memiliki luas diatas rata-rata
Batu %>%
filter(area>mean(area)) %>%
print(n=48)
## # A tibble: 27 × 4
## area peri shape perm
## <int> <dbl> <dbl> <dbl>
## 1 7558 3931. 0.183 6.3
## 2 7352 3869. 0.117 6.3
## 3 7943 3949. 0.122 17.1
## 4 7979 4010. 0.167 17.1
## 5 9333 4346. 0.190 17.1
## 6 8209 4345. 0.164 17.1
## 7 8393 3682. 0.204 119
## 8 9364 4480. 0.151 119
## 9 8624 3986. 0.148 119
## 10 10651 4037. 0.229 82.4
## 11 8868 3518. 0.232 82.4
## 12 9417 3999. 0.173 82.4
## 13 8874 3629. 0.153 82.4
## 14 10962 4609. 0.204 58.6
## 15 10743 4788. 0.263 58.6
## 16 11878 4864. 0.200 58.6
## 17 9867 4479. 0.145 58.6
## 18 7838 3429. 0.114 142
## 19 11876 4353. 0.291 142
## 20 12212 4698. 0.240 142
## 21 8233 3518. 0.162 142
## 22 7416 1916. 0.192 740
## 23 7894 1461. 0.276 890
## 24 7392 1351. 0.154 950
## 25 7894 1461. 0.276 950
## 26 8793 2280. 0.420 1300
## 27 9718 1486. 0.200 580
#Penggunaan Select
#Untuk menampilkan 2 kolom saja yaitu area(luas batu) dan peri(keliling batu)
Batu %>%
select(area, peri)%>%
print(n=48)
## # A tibble: 48 × 2
## area peri
## <int> <dbl>
## 1 4990 2792.
## 2 7002 3893.
## 3 7558 3931.
## 4 7352 3869.
## 5 7943 3949.
## 6 7979 4010.
## 7 9333 4346.
## 8 8209 4345.
## 9 8393 3682.
## 10 6425 3099.
## 11 9364 4480.
## 12 8624 3986.
## 13 10651 4037.
## 14 8868 3518.
## 15 9417 3999.
## 16 8874 3629.
## 17 10962 4609.
## 18 10743 4788.
## 19 11878 4864.
## 20 9867 4479.
## 21 7838 3429.
## 22 11876 4353.
## 23 12212 4698.
## 24 8233 3518.
## 25 6360 1977.
## 26 4193 1379.
## 27 7416 1916.
## 28 5246 1585.
## 29 6509 1851.
## 30 4895 1240.
## 31 6775 1728.
## 32 7894 1461.
## 33 5980 1427.
## 34 5318 990.
## 35 7392 1351.
## 36 7894 1461.
## 37 3469 1377.
## 38 1468 476.
## 39 3524 1189.
## 40 5267 1645.
## 41 5048 942.
## 42 1016 309.
## 43 5605 1146.
## 44 8793 2280.
## 45 3475 1174.
## 46 1651 598.
## 47 5514 1456.
## 48 9718 1486.
#Penggunaan Mutate
#membuat variabel baru yaitu besar jarak euclid tiap pengamatan area dan perimeter terhadap nilai rata ratanya
Batu %>%
mutate(Jarak_Euclid= sqrt((area-mean(area))^2 + (peri-mean(peri))^2))%>%
print(n=48)
## # A tibble: 48 × 5
## area peri shape perm Jarak_Euclid
## <int> <dbl> <dbl> <dbl> <dbl>
## 1 4990 2792. 0.0903 6.3 2200.
## 2 7002 3893. 0.149 6.3 1225.
## 3 7558 3931. 0.183 6.3 1302.
## 4 7352 3869. 0.117 6.3 1198.
## 5 7943 3949. 0.122 17.1 1474.
## 6 7979 4010. 0.167 17.1 1546.
## 7 9333 4346. 0.190 17.1 2715.
## 8 8209 4345. 0.164 17.1 1951.
## 9 8393 3682. 0.204 119 1566.
## 10 6425 3099. 0.162 119 869.
## 11 9364 4480. 0.151 119 2823.
## 12 8624 3986. 0.148 119 1940.
## 13 10651 4037. 0.229 82.4 3719.
## 14 8868 3518. 0.232 82.4 1877.
## 15 9417 3999. 0.173 82.4 2589.
## 16 8874 3629. 0.153 82.4 1934.
## 17 10962 4609. 0.204 58.6 4237.
## 18 10743 4788. 0.263 58.6 4132.
## 19 11878 4864. 0.200 58.6 5173.
## 20 9867 4479. 0.145 58.6 3226.
## 21 7838 3429. 0.114 142 990.
## 22 11876 4353. 0.291 142 4977.
## 23 12212 4698. 0.240 142 5413.
## 24 8233 3518. 0.162 142 1339.
## 25 6360 1977. 0.281 740 1087.
## 26 4193 1379. 0.179 740 3266.
## 27 7416 1916. 0.192 740 799.
## 28 5246 1585. 0.133 740 2230.
## 29 6509 1851. 0.225 890 1073.
## 30 4895 1240. 0.341 890 2709.
## 31 6775 1728. 0.312 890 1040.
## 32 7894 1461. 0.276 890 1411.
## 33 5980 1427. 0.198 950 1742.
## 34 5318 990. 0.327 950 2522.
## 35 7392 1351. 0.154 950 1347.
## 36 7894 1461. 0.276 950 1411.
## 37 3469 1377. 0.177 100 3941.
## 38 1468 476. 0.439 100 6130.
## 39 3524 1189. 0.164 100 3956.
## 40 5267 1645. 0.254 100 2183.
## 41 5048 942. 0.329 1300 2758.
## 42 1016 309. 0.230 1300 6612.
## 43 5605 1146. 0.464 1300 2206.
## 44 8793 2280. 0.420 1300 1655.
## 45 3475 1174. 0.201 580 4007.
## 46 1651 598. 0.263 580 5916.
## 47 5514 1456. 0.182 580 2075.
## 48 9718 1486. 0.200 580 2799.
#Penggunaan secara bersama sama
#Membuat kolom baru yaitu jarak euclid dengan hanya mengambil baris yang memiliki area dibawah rata rata dan menampilkan kolom area peri dan jarak euclid saja kemudian data diurutkan menurun berdasarkan jarak euclidnya.
Batu %>%
mutate(Jarak_Euclid= sqrt((area-mean(area))^2 + (peri-mean(peri))^2)) %>%
filter(area<=mean(area)) %>%
select(area, peri, Jarak_Euclid) %>%
arrange(desc(Jarak_Euclid))%>%
print(n=48)
## # A tibble: 21 × 3
## area peri Jarak_Euclid
## <int> <dbl> <dbl>
## 1 1016 309. 6612.
## 2 1468 476. 6130.
## 3 1651 598. 5916.
## 4 3475 1174. 4007.
## 5 3524 1189. 3956.
## 6 3469 1377. 3941.
## 7 4193 1379. 3266.
## 8 5048 942. 2758.
## 9 4895 1240. 2709.
## 10 5318 990. 2522.
## 11 5246 1585. 2230.
## 12 5605 1146. 2206.
## 13 4990 2792. 2200.
## 14 5267 1645. 2183.
## 15 5514 1456. 2075.
## 16 5980 1427. 1742.
## 17 7002 3893. 1225.
## 18 6360 1977. 1087.
## 19 6509 1851. 1073.
## 20 6775 1728. 1040.
## 21 6425 3099. 869.
```