Tugas Akhir Mandarel
Engine SQL
Database yang digunakan pada publikasi ini berasal dari sampel chinook .Keyika akan mengakses dan mengolah database packages yang akan digunakan yaitu DBI dan RSQLite.
install.packages(c("RSQLite", "DBI"), dependencies = TRUE)Selanjutnya package tidyverse yang mencakup beberapa package diretrieve. Fungsi dalam suatu package dapat juga dipanggil tanpa perintah library() atau require() jika sintaks yang ditulis menyertakan nama package tempat fungsi tersebut berasal. Penyertaan ini dengan menggunakan tanda ::.
library(tidyverse)
library(RSQLite)
library(DBI)Secara umum, koneksi terhadap database pada R dapat menggunakan sintaks berikut: DBI::dbConnect(RSQLite::SQLite(), path = ":dbname:")
chinook<-DBI::dbConnect(RSQLite::SQLite(), "C:/sqlite/chinook.db")
RSQLite::dbListTables(chinook)## [1] "albums" "artists" "customers" "employees"
## [5] "genres" "invoice_items" "invoices" "media_types"
## [9] "playlist_track" "playlists" "sqlite_sequence" "sqlite_stat1"
## [13] "tracks"
Setelah melakukan dbConnect() kita dapat melakukan perintah SQL.
SELECT
*
FROM
customers;| CustomerId | FirstName | LastName | Company | Address | City | State | Country | PostalCode | Phone | Fax | SupportRepId | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Luís | Gonçalves | Embraer - Empresa Brasileira de Aeronáutica S.A. | Av. Brigadeiro Faria Lima, 2170 | São José dos Campos | SP | Brazil | 12227-000 | +55 (12) 3923-5555 | +55 (12) 3923-5566 | luisg@embraer.com.br | 3 |
| 2 | Leonie | Köhler | NA | Theodor-Heuss-Straße 34 | Stuttgart | NA | Germany | 70174 | +49 0711 2842222 | NA | leonekohler@surfeu.de | 5 |
| 3 | François | Tremblay | NA | 1498 rue Bélanger | Montréal | QC | Canada | H2G 1A7 | +1 (514) 721-4711 | NA | ftremblay@gmail.com | 3 |
| 4 | Bjørn | Hansen | NA | Ullevålsveien 14 | Oslo | NA | Norway | 0171 | +47 22 44 22 22 | NA | bjorn.hansen@yahoo.no | 4 |
| 5 | František | Wichterlová | JetBrains s.r.o. | Klanova 9/506 | Prague | NA | Czech Republic | 14700 | +420 2 4172 5555 | +420 2 4172 5555 | frantisekw@jetbrains.com | 4 |
| 6 | Helena | Holý | NA | Rilská 3174/6 | Prague | NA | Czech Republic | 14300 | +420 2 4177 0449 | NA | hholy@gmail.com | 5 |
| 7 | Astrid | Gruber | NA | Rotenturmstraße 4, 1010 Innere Stadt | Vienne | NA | Austria | 1010 | +43 01 5134505 | NA | astrid.gruber@apple.at | 5 |
| 8 | Daan | Peeters | NA | Grétrystraat 63 | Brussels | NA | Belgium | 1000 | +32 02 219 03 03 | NA | daan_peeters@apple.be | 4 |
| 9 | Kara | Nielsen | NA | Sønder Boulevard 51 | Copenhagen | NA | Denmark | 1720 | +453 3331 9991 | NA | kara.nielsen@jubii.dk | 4 |
| 10 | Eduardo | Martins | Woodstock Discos | Rua Dr. Falcão Filho, 155 | São Paulo | SP | Brazil | 01007-010 | +55 (11) 3033-5446 | +55 (11) 3033-4564 | eduardo@woodstock.com.br | 4 |
Setelah selesai mengolah database tersebut, fungsi dbDisconnect() untuk memutuskan hubungan pada suatu database dan ketika akan menyambungkan kembali cukup menggunakan kembali dbConnect()
dbDisconnect(chinook)Menggunakan DPLYR
chinook<-DBI::dbConnect(RSQLite::SQLite(), "C:/sqlite/chinook.db")
RSQLite::dbListTables(chinook)## [1] "albums" "artists" "customers" "employees"
## [5] "genres" "invoice_items" "invoices" "media_types"
## [9] "playlist_track" "playlists" "sqlite_sequence" "sqlite_stat1"
## [13] "tracks"
dplyr::tbl(chinook,"customers")## # Source: table<customers> [?? x 13]
## # Database: sqlite 3.37.0 [C:\sqlite\chinook.db]
## CustomerId FirstName LastName Company Address City State Country PostalCode
## <int> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1 Luís Gonçalves Embrae~ Av. Br~ São ~ SP Brazil 12227-000
## 2 2 Leonie Köhler <NA> Theodo~ Stut~ <NA> Germany 70174
## 3 3 François Tremblay <NA> 1498 r~ Mont~ QC Canada H2G 1A7
## 4 4 Bjørn Hansen <NA> Ullevå~ Oslo <NA> Norway 0171
## 5 5 František Wichterl~ JetBra~ Klanov~ Prag~ <NA> Czech ~ 14700
## 6 6 Helena Holý <NA> Rilská~ Prag~ <NA> Czech ~ 14300
## 7 7 Astrid Gruber <NA> Rotent~ Vien~ <NA> Austria 1010
## 8 8 Daan Peeters <NA> Grétry~ Brus~ <NA> Belgium 1000
## 9 9 Kara Nielsen <NA> Sønder~ Cope~ <NA> Denmark 1720
## 10 10 Eduardo Martins Woodst~ Rua Dr~ São ~ SP Brazil 01007-010
## # ... with more rows, and 4 more variables: Phone <chr>, Fax <chr>,
## # Email <chr>, SupportRepId <int>
customers <- dplyr::tbl(chinook,"customers")
class(customers)## [1] "tbl_SQLiteConnection" "tbl_dbi" "tbl_sql"
## [4] "tbl_lazy" "tbl"
customers## # Source: table<customers> [?? x 13]
## # Database: sqlite 3.37.0 [C:\sqlite\chinook.db]
## CustomerId FirstName LastName Company Address City State Country PostalCode
## <int> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1 Luís Gonçalves Embrae~ Av. Br~ São ~ SP Brazil 12227-000
## 2 2 Leonie Köhler <NA> Theodo~ Stut~ <NA> Germany 70174
## 3 3 François Tremblay <NA> 1498 r~ Mont~ QC Canada H2G 1A7
## 4 4 Bjørn Hansen <NA> Ullevå~ Oslo <NA> Norway 0171
## 5 5 František Wichterl~ JetBra~ Klanov~ Prag~ <NA> Czech ~ 14700
## 6 6 Helena Holý <NA> Rilská~ Prag~ <NA> Czech ~ 14300
## 7 7 Astrid Gruber <NA> Rotent~ Vien~ <NA> Austria 1010
## 8 8 Daan Peeters <NA> Grétry~ Brus~ <NA> Belgium 1000
## 9 9 Kara Nielsen <NA> Sønder~ Cope~ <NA> Denmark 1720
## 10 10 Eduardo Martins Woodst~ Rua Dr~ São ~ SP Brazil 01007-010
## # ... with more rows, and 4 more variables: Phone <chr>, Fax <chr>,
## # Email <chr>, SupportRepId <int>
query <- customers %>% select(-Company)
query## # Source: lazy query [?? x 12]
## # Database: sqlite 3.37.0 [C:\sqlite\chinook.db]
## CustomerId FirstName LastName Address City State Country PostalCode Phone
## <int> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1 Luís Gonçalves Av. Br~ São ~ SP Brazil 12227-000 +55 ~
## 2 2 Leonie Köhler Theodo~ Stut~ <NA> Germany 70174 +49 ~
## 3 3 François Tremblay 1498 r~ Mont~ QC Canada H2G 1A7 +1 (~
## 4 4 Bjørn Hansen Ullevå~ Oslo <NA> Norway 0171 +47 ~
## 5 5 František Wichterlová Klanov~ Prag~ <NA> Czech ~ 14700 +420~
## 6 6 Helena Holý Rilská~ Prag~ <NA> Czech ~ 14300 +420~
## 7 7 Astrid Gruber Rotent~ Vien~ <NA> Austria 1010 +43 ~
## 8 8 Daan Peeters Grétry~ Brus~ <NA> Belgium 1000 +32 ~
## 9 9 Kara Nielsen Sønder~ Cope~ <NA> Denmark 1720 +453~
## 10 10 Eduardo Martins Rua Dr~ São ~ SP Brazil 01007-010 +55 ~
## # ... with more rows, and 3 more variables: Fax <chr>, Email <chr>,
## # SupportRepId <int>
dplyr::show_query(query)## <SQL>
## SELECT `CustomerId`, `FirstName`, `LastName`, `Address`, `City`, `State`, `Country`, `PostalCode`, `Phone`, `Fax`, `Email`, `SupportRepId`
## FROM `customers`
Data Wrangling
Dataset yang digunakan adalah storms yang tersedia pada package default R datasets.
library(datasets)
library(help = "datasets")
morley## Expt Run Speed
## 001 1 1 850
## 002 1 2 740
## 003 1 3 900
## 004 1 4 1070
## 005 1 5 930
## 006 1 6 850
## 007 1 7 950
## 008 1 8 980
## 009 1 9 980
## 010 1 10 880
## 011 1 11 1000
## 012 1 12 980
## 013 1 13 930
## 014 1 14 650
## 015 1 15 760
## 016 1 16 810
## 017 1 17 1000
## 018 1 18 1000
## 019 1 19 960
## 020 1 20 960
## 021 2 1 960
## 022 2 2 940
## 023 2 3 960
## 024 2 4 940
## 025 2 5 880
## 026 2 6 800
## 027 2 7 850
## 028 2 8 880
## 029 2 9 900
## 030 2 10 840
## 031 2 11 830
## 032 2 12 790
## 033 2 13 810
## 034 2 14 880
## 035 2 15 880
## 036 2 16 830
## 037 2 17 800
## 038 2 18 790
## 039 2 19 760
## 040 2 20 800
## 041 3 1 880
## 042 3 2 880
## 043 3 3 880
## 044 3 4 860
## 045 3 5 720
## 046 3 6 720
## 047 3 7 620
## 048 3 8 860
## 049 3 9 970
## 050 3 10 950
## 051 3 11 880
## 052 3 12 910
## 053 3 13 850
## 054 3 14 870
## 055 3 15 840
## 056 3 16 840
## 057 3 17 850
## 058 3 18 840
## 059 3 19 840
## 060 3 20 840
## 061 4 1 890
## 062 4 2 810
## 063 4 3 810
## 064 4 4 820
## 065 4 5 800
## 066 4 6 770
## 067 4 7 760
## 068 4 8 740
## 069 4 9 750
## 070 4 10 760
## 071 4 11 910
## 072 4 12 920
## 073 4 13 890
## 074 4 14 860
## 075 4 15 880
## 076 4 16 720
## 077 4 17 840
## 078 4 18 850
## 079 4 19 850
## 080 4 20 780
## 081 5 1 890
## 082 5 2 840
## 083 5 3 780
## 084 5 4 810
## 085 5 5 760
## 086 5 6 810
## 087 5 7 790
## 088 5 8 810
## 089 5 9 820
## 090 5 10 850
## 091 5 11 870
## 092 5 12 870
## 093 5 13 810
## 094 5 14 740
## 095 5 15 810
## 096 5 16 940
## 097 5 17 950
## 098 5 18 800
## 099 5 19 810
## 100 5 20 870
Morley adalah Sebuah data klasik Michelson (tapi tidak yang satu ini dengan Morley) pada pengukuran yang dilakukan pada tahun 1879 pada kecepatan cahaya. Data terdiri dari lima percobaan, masing-masing terdiri dari 20 'run' berturut-turut. Responsnya adalah kecepatan pengukuran cahaya, dengan kode yang sesuai (km/dtk, dengan 299000 dikurangi).Suatu data frame dengan 100 pengamatan pada 3 variabel. Untuk mengetahui informasi terkait dataset dapat menggunakan sintaks ?dan meletakannya sebelum nama dataset .
?morley
View(morley )Dataset tersebut akan dilakukan perintah arrange , mutate ,filter,select, dan summarise.
morley %>% select(Expt,Run,Speed)## Expt Run Speed
## 001 1 1 850
## 002 1 2 740
## 003 1 3 900
## 004 1 4 1070
## 005 1 5 930
## 006 1 6 850
## 007 1 7 950
## 008 1 8 980
## 009 1 9 980
## 010 1 10 880
## 011 1 11 1000
## 012 1 12 980
## 013 1 13 930
## 014 1 14 650
## 015 1 15 760
## 016 1 16 810
## 017 1 17 1000
## 018 1 18 1000
## 019 1 19 960
## 020 1 20 960
## 021 2 1 960
## 022 2 2 940
## 023 2 3 960
## 024 2 4 940
## 025 2 5 880
## 026 2 6 800
## 027 2 7 850
## 028 2 8 880
## 029 2 9 900
## 030 2 10 840
## 031 2 11 830
## 032 2 12 790
## 033 2 13 810
## 034 2 14 880
## 035 2 15 880
## 036 2 16 830
## 037 2 17 800
## 038 2 18 790
## 039 2 19 760
## 040 2 20 800
## 041 3 1 880
## 042 3 2 880
## 043 3 3 880
## 044 3 4 860
## 045 3 5 720
## 046 3 6 720
## 047 3 7 620
## 048 3 8 860
## 049 3 9 970
## 050 3 10 950
## 051 3 11 880
## 052 3 12 910
## 053 3 13 850
## 054 3 14 870
## 055 3 15 840
## 056 3 16 840
## 057 3 17 850
## 058 3 18 840
## 059 3 19 840
## 060 3 20 840
## 061 4 1 890
## 062 4 2 810
## 063 4 3 810
## 064 4 4 820
## 065 4 5 800
## 066 4 6 770
## 067 4 7 760
## 068 4 8 740
## 069 4 9 750
## 070 4 10 760
## 071 4 11 910
## 072 4 12 920
## 073 4 13 890
## 074 4 14 860
## 075 4 15 880
## 076 4 16 720
## 077 4 17 840
## 078 4 18 850
## 079 4 19 850
## 080 4 20 780
## 081 5 1 890
## 082 5 2 840
## 083 5 3 780
## 084 5 4 810
## 085 5 5 760
## 086 5 6 810
## 087 5 7 790
## 088 5 8 810
## 089 5 9 820
## 090 5 10 850
## 091 5 11 870
## 092 5 12 870
## 093 5 13 810
## 094 5 14 740
## 095 5 15 810
## 096 5 16 940
## 097 5 17 950
## 098 5 18 800
## 099 5 19 810
## 100 5 20 870
morley %>% arrange(desc(Run))## Expt Run Speed
## 020 1 20 960
## 040 2 20 800
## 060 3 20 840
## 080 4 20 780
## 100 5 20 870
## 019 1 19 960
## 039 2 19 760
## 059 3 19 840
## 079 4 19 850
## 099 5 19 810
## 018 1 18 1000
## 038 2 18 790
## 058 3 18 840
## 078 4 18 850
## 098 5 18 800
## 017 1 17 1000
## 037 2 17 800
## 057 3 17 850
## 077 4 17 840
## 097 5 17 950
## 016 1 16 810
## 036 2 16 830
## 056 3 16 840
## 076 4 16 720
## 096 5 16 940
## 015 1 15 760
## 035 2 15 880
## 055 3 15 840
## 075 4 15 880
## 095 5 15 810
## 014 1 14 650
## 034 2 14 880
## 054 3 14 870
## 074 4 14 860
## 094 5 14 740
## 013 1 13 930
## 033 2 13 810
## 053 3 13 850
## 073 4 13 890
## 093 5 13 810
## 012 1 12 980
## 032 2 12 790
## 052 3 12 910
## 072 4 12 920
## 092 5 12 870
## 011 1 11 1000
## 031 2 11 830
## 051 3 11 880
## 071 4 11 910
## 091 5 11 870
## 010 1 10 880
## 030 2 10 840
## 050 3 10 950
## 070 4 10 760
## 090 5 10 850
## 009 1 9 980
## 029 2 9 900
## 049 3 9 970
## 069 4 9 750
## 089 5 9 820
## 008 1 8 980
## 028 2 8 880
## 048 3 8 860
## 068 4 8 740
## 088 5 8 810
## 007 1 7 950
## 027 2 7 850
## 047 3 7 620
## 067 4 7 760
## 087 5 7 790
## 006 1 6 850
## 026 2 6 800
## 046 3 6 720
## 066 4 6 770
## 086 5 6 810
## 005 1 5 930
## 025 2 5 880
## 045 3 5 720
## 065 4 5 800
## 085 5 5 760
## 004 1 4 1070
## 024 2 4 940
## 044 3 4 860
## 064 4 4 820
## 084 5 4 810
## 003 1 3 900
## 023 2 3 960
## 043 3 3 880
## 063 4 3 810
## 083 5 3 780
## 002 1 2 740
## 022 2 2 940
## 042 3 2 880
## 062 4 2 810
## 082 5 2 840
## 001 1 1 850
## 021 2 1 960
## 041 3 1 880
## 061 4 1 890
## 081 5 1 890
morley %>% filter(Speed>795)## Expt Run Speed
## 001 1 1 850
## 003 1 3 900
## 004 1 4 1070
## 005 1 5 930
## 006 1 6 850
## 007 1 7 950
## 008 1 8 980
## 009 1 9 980
## 010 1 10 880
## 011 1 11 1000
## 012 1 12 980
## 013 1 13 930
## 016 1 16 810
## 017 1 17 1000
## 018 1 18 1000
## 019 1 19 960
## 020 1 20 960
## 021 2 1 960
## 022 2 2 940
## 023 2 3 960
## 024 2 4 940
## 025 2 5 880
## 026 2 6 800
## 027 2 7 850
## 028 2 8 880
## 029 2 9 900
## 030 2 10 840
## 031 2 11 830
## 033 2 13 810
## 034 2 14 880
## 035 2 15 880
## 036 2 16 830
## 037 2 17 800
## 040 2 20 800
## 041 3 1 880
## 042 3 2 880
## 043 3 3 880
## 044 3 4 860
## 048 3 8 860
## 049 3 9 970
## 050 3 10 950
## 051 3 11 880
## 052 3 12 910
## 053 3 13 850
## 054 3 14 870
## 055 3 15 840
## 056 3 16 840
## 057 3 17 850
## 058 3 18 840
## 059 3 19 840
## 060 3 20 840
## 061 4 1 890
## 062 4 2 810
## 063 4 3 810
## 064 4 4 820
## 065 4 5 800
## 071 4 11 910
## 072 4 12 920
## 073 4 13 890
## 074 4 14 860
## 075 4 15 880
## 077 4 17 840
## 078 4 18 850
## 079 4 19 850
## 081 5 1 890
## 082 5 2 840
## 084 5 4 810
## 086 5 6 810
## 088 5 8 810
## 089 5 9 820
## 090 5 10 850
## 091 5 11 870
## 092 5 12 870
## 093 5 13 810
## 095 5 15 810
## 096 5 16 940
## 097 5 17 950
## 098 5 18 800
## 099 5 19 810
## 100 5 20 870
morley %>% mutate(max=Speed*Run)## Expt Run Speed max
## 001 1 1 850 850
## 002 1 2 740 1480
## 003 1 3 900 2700
## 004 1 4 1070 4280
## 005 1 5 930 4650
## 006 1 6 850 5100
## 007 1 7 950 6650
## 008 1 8 980 7840
## 009 1 9 980 8820
## 010 1 10 880 8800
## 011 1 11 1000 11000
## 012 1 12 980 11760
## 013 1 13 930 12090
## 014 1 14 650 9100
## 015 1 15 760 11400
## 016 1 16 810 12960
## 017 1 17 1000 17000
## 018 1 18 1000 18000
## 019 1 19 960 18240
## 020 1 20 960 19200
## 021 2 1 960 960
## 022 2 2 940 1880
## 023 2 3 960 2880
## 024 2 4 940 3760
## 025 2 5 880 4400
## 026 2 6 800 4800
## 027 2 7 850 5950
## 028 2 8 880 7040
## 029 2 9 900 8100
## 030 2 10 840 8400
## 031 2 11 830 9130
## 032 2 12 790 9480
## 033 2 13 810 10530
## 034 2 14 880 12320
## 035 2 15 880 13200
## 036 2 16 830 13280
## 037 2 17 800 13600
## 038 2 18 790 14220
## 039 2 19 760 14440
## 040 2 20 800 16000
## 041 3 1 880 880
## 042 3 2 880 1760
## 043 3 3 880 2640
## 044 3 4 860 3440
## 045 3 5 720 3600
## 046 3 6 720 4320
## 047 3 7 620 4340
## 048 3 8 860 6880
## 049 3 9 970 8730
## 050 3 10 950 9500
## 051 3 11 880 9680
## 052 3 12 910 10920
## 053 3 13 850 11050
## 054 3 14 870 12180
## 055 3 15 840 12600
## 056 3 16 840 13440
## 057 3 17 850 14450
## 058 3 18 840 15120
## 059 3 19 840 15960
## 060 3 20 840 16800
## 061 4 1 890 890
## 062 4 2 810 1620
## 063 4 3 810 2430
## 064 4 4 820 3280
## 065 4 5 800 4000
## 066 4 6 770 4620
## 067 4 7 760 5320
## 068 4 8 740 5920
## 069 4 9 750 6750
## 070 4 10 760 7600
## 071 4 11 910 10010
## 072 4 12 920 11040
## 073 4 13 890 11570
## 074 4 14 860 12040
## 075 4 15 880 13200
## 076 4 16 720 11520
## 077 4 17 840 14280
## 078 4 18 850 15300
## 079 4 19 850 16150
## 080 4 20 780 15600
## 081 5 1 890 890
## 082 5 2 840 1680
## 083 5 3 780 2340
## 084 5 4 810 3240
## 085 5 5 760 3800
## 086 5 6 810 4860
## 087 5 7 790 5530
## 088 5 8 810 6480
## 089 5 9 820 7380
## 090 5 10 850 8500
## 091 5 11 870 9570
## 092 5 12 870 10440
## 093 5 13 810 10530
## 094 5 14 740 10360
## 095 5 15 810 12150
## 096 5 16 940 15040
## 097 5 17 950 16150
## 098 5 18 800 14400
## 099 5 19 810 15390
## 100 5 20 870 17400
morley %>% group_by(Speed)%>%summarise(sum=sum(Run))## # A tibble: 30 x 2
## Speed sum
## <int> <int>
## 1 620 7
## 2 650 14
## 3 720 27
## 4 740 24
## 5 750 9
## 6 760 56
## 7 770 6
## 8 780 23
## 9 790 37
## 10 800 66
## # ... with 20 more rows
morley ## Expt Run Speed
## 001 1 1 850
## 002 1 2 740
## 003 1 3 900
## 004 1 4 1070
## 005 1 5 930
## 006 1 6 850
## 007 1 7 950
## 008 1 8 980
## 009 1 9 980
## 010 1 10 880
## 011 1 11 1000
## 012 1 12 980
## 013 1 13 930
## 014 1 14 650
## 015 1 15 760
## 016 1 16 810
## 017 1 17 1000
## 018 1 18 1000
## 019 1 19 960
## 020 1 20 960
## 021 2 1 960
## 022 2 2 940
## 023 2 3 960
## 024 2 4 940
## 025 2 5 880
## 026 2 6 800
## 027 2 7 850
## 028 2 8 880
## 029 2 9 900
## 030 2 10 840
## 031 2 11 830
## 032 2 12 790
## 033 2 13 810
## 034 2 14 880
## 035 2 15 880
## 036 2 16 830
## 037 2 17 800
## 038 2 18 790
## 039 2 19 760
## 040 2 20 800
## 041 3 1 880
## 042 3 2 880
## 043 3 3 880
## 044 3 4 860
## 045 3 5 720
## 046 3 6 720
## 047 3 7 620
## 048 3 8 860
## 049 3 9 970
## 050 3 10 950
## 051 3 11 880
## 052 3 12 910
## 053 3 13 850
## 054 3 14 870
## 055 3 15 840
## 056 3 16 840
## 057 3 17 850
## 058 3 18 840
## 059 3 19 840
## 060 3 20 840
## 061 4 1 890
## 062 4 2 810
## 063 4 3 810
## 064 4 4 820
## 065 4 5 800
## 066 4 6 770
## 067 4 7 760
## 068 4 8 740
## 069 4 9 750
## 070 4 10 760
## 071 4 11 910
## 072 4 12 920
## 073 4 13 890
## 074 4 14 860
## 075 4 15 880
## 076 4 16 720
## 077 4 17 840
## 078 4 18 850
## 079 4 19 850
## 080 4 20 780
## 081 5 1 890
## 082 5 2 840
## 083 5 3 780
## 084 5 4 810
## 085 5 5 760
## 086 5 6 810
## 087 5 7 790
## 088 5 8 810
## 089 5 9 820
## 090 5 10 850
## 091 5 11 870
## 092 5 12 870
## 093 5 13 810
## 094 5 14 740
## 095 5 15 810
## 096 5 16 940
## 097 5 17 950
## 098 5 18 800
## 099 5 19 810
## 100 5 20 870
Melakukan kelima perintah bersamaan
morley %>% select(Expt,Run,Speed) %>% arrange(desc(Run))%>% filter(Speed>795)%>% mutate(max=Speed*Run)%>% group_by(Speed)%>%summarise(sum=sum(Run))## # A tibble: 21 x 2
## Speed sum
## <int> <int>
## 1 800 66
## 2 810 99
## 3 820 13
## 4 830 27
## 5 840 117
## 6 850 91
## 7 860 26
## 8 870 57
## 9 880 84
## 10 890 15
## # ... with 11 more rows