Dalam visualisasi data tidak jarang kita menadapatkan bentuk yang tidak sesuai dengan harapan. Pada kesempatan kali ini kita akan belajar membuat variabel baru bahkan mengganti variabel yang ada agar data lebih mudah kita kerjakan.
Kita akan mengubah data yang ada menggunakan paket dplyr dan data penerbangan yang berangkat dari kota New York di Tahun 2013.

flights
## Error in eval(expr, envir, enclos): object 'flights' not found
#> # A tibble: 336,776 x 19
#>    year month   day dep_time sched_dep_time dep_delay arr_time sched_arr_time
#>   <int> <int> <int>    <int>          <int>     <dbl>    <int>          <int>
#> 1  2013     1     1      517            515         2      830            819
#> 2  2013     1     1      533            529         4      850            830
#> 3  2013     1     1      542            540         2      923            850
#> 4  2013     1     1      544            545        -1     1004           1022
#> 5  2013     1     1      554            600        -6      812            837
#> 6  2013     1     1      554            558        -4      740            728
#> # … with 336,770 more rows, and 11 more variables: arr_delay <dbl>,
#> #   carrier <chr>, flight <int>, tailnum <chr>, origin <chr>, dest <chr>,
#> #   air_time <dbl>, distance <dbl>, hour <dbl>, minute <dbl>, time_hour <dttm>

dplyr Dasar 1. Memfilter baris dengan filter () Contoh: memilih semua penerbangan pada tanggal 1 Januari

filter(flights, month == 1, day == 1)
## Error in match.arg(method): object 'day' not found
#> # A tibble: 842 x 19
#>    year month   day dep_time sched_dep_time dep_delay arr_time sched_arr_time
#>   <int> <int> <int>    <int>          <int>     <dbl>    <int>          <int>
#> 1  2013     1     1      517            515         2      830            819
#> 2  2013     1     1      533            529         4      850            830
#> 3  2013     1     1      542            540         2      923            850
#> 4  2013     1     1      544            545        -1     1004           1022
#> 5  2013     1     1      554            600        -6      812            837
#> 6  2013     1     1      554            558        -4      740            728
#> # … with 836 more rows, and 11 more variables: arr_delay <dbl>, carrier <chr>,
#> #   flight <int>, tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>,
#> #   distance <dbl>, hour <dbl>, minute <dbl>, time_hour <dttm>

menyimpan data penerbangan pada 1 Januari

jan1 <- filter(flights, month == 1, day == 1)
## Error in match.arg(method): object 'day' not found

mncetak dan meyimpan dalam sebuah variabel dapat dilakukan dengan memberi tanda kurung

(dec25 <- filter(flights, month == 12, day == 25))
## Error in match.arg(method): object 'day' not found
#> # A tibble: 719 x 19
#>    year month   day dep_time sched_dep_time dep_delay arr_time sched_arr_time
#>   <int> <int> <int>    <int>          <int>     <dbl>    <int>          <int>
#> 1  2013    12    25      456            500        -4      649            651
#> 2  2013    12    25      524            515         9      805            814
#> 3  2013    12    25      542            540         2      832            850
#> 4  2013    12    25      546            550        -4     1022           1027
#> 5  2013    12    25      556            600        -4      730            745
#> 6  2013    12    25      557            600        -3      743            752
#> # … with 713 more rows, and 11 more variables: arr_delay <dbl>, carrier <chr>,
#> #   flight <int>, tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>,
#> #   distance <dbl>, hour <dbl>, minute <dbl>, time_hour <dttm>

Perbandingan gunakan near90

near(sqrt(2) ^ 2,  2)
## Error in near(sqrt(2)^2, 2): could not find function "near"
#> [1] TRUE
near(1 / 49 * 49, 1)
## Error in near(1/49 * 49, 1): could not find function "near"
#> [1] TRUE

Operator logika x %in% y untuk menyeleksi setiap baris dimana x adalah satu diantara nilai y

nov_dec <- filter(flights, month %in% c(11, 12))
## Error in as.ts(x): object 'flights' not found

! (X & y) sama dengan! X | ! y, dan! (x | y) sama dengan! x &! y. Misalnya, jika Anda ingin menemukan penerbangan yang tidak tertunda (pada kedatangan atau keberangkatan) lebih dari dua jam, Anda dapat menggunakan salah satu dari dua filter berikut:

filter(flights, !(arr_delay > 120 | dep_delay > 120))
## Error in as.ts(x): object 'flights' not found
filter(flights, arr_delay <= 120, dep_delay <= 120)
## Error in match.arg(method): object 'dep_delay' not found

Nilai yang hilang

NA > 5
## [1] NA
#> [1] NA
10 == NA
## [1] NA
#> [1] NA
NA + 10
## [1] NA
#> [1] NA
NA / 2
## [1] NA
#> [1] NA

Menyusun baris dengan arrange()

arrange(flights, year, month, day)
## Error in arrange(flights, year, month, day): could not find function "arrange"
#> # A tibble: 336,776 x 19
#>    year month   day dep_time sched_dep_time dep_delay arr_time sched_arr_time
#>   <int> <int> <int>    <int>          <int>     <dbl>    <int>          <int>
#> 1  2013     1     1      517            515         2      830            819
#> 2  2013     1     1      533            529         4      850            830
#> 3  2013     1     1      542            540         2      923            850
#> 4  2013     1     1      544            545        -1     1004           1022
#> 5  2013     1     1      554            600        -6      812            837
#> 6  2013     1     1      554            558        -4      740            728
#> # … with 336,770 more rows, and 11 more variables: arr_delay <dbl>,
#> #   carrier <chr>, flight <int>, tailnum <chr>, origin <chr>, dest <chr>,
#> #   air_time <dbl>, distance <dbl>, hour <dbl>, minute <dbl>, time_hour <dttm>

menggunakan desc()

arrange(flights, desc(dep_delay))
## Error in arrange(flights, desc(dep_delay)): could not find function "arrange"
#> # A tibble: 336,776 x 19
#>    year month   day dep_time sched_dep_time dep_delay arr_time sched_arr_time
#>   <int> <int> <int>    <int>          <int>     <dbl>    <int>          <int>
#> 1  2013     1     9      641            900      1301     1242           1530
#> 2  2013     6    15     1432           1935      1137     1607           2120
#> 3  2013     1    10     1121           1635      1126     1239           1810
#> 4  2013     9    20     1139           1845      1014     1457           2210
#> 5  2013     7    22      845           1600      1005     1044           1815
#> 6  2013     4    10     1100           1900       960     1342           2211
#> # … with 336,770 more rows, and 11 more variables: arr_delay <dbl>,
#> #   carrier <chr>, flight <int>, tailnum <chr>, origin <chr>, dest <chr>,
#> #   air_time <dbl>, distance <dbl>, hour <dbl>, minute <dbl>, time_hour <dttm>

Memilih kolom dengan select()

select(flights, year, month, day)
## Error in select(flights, year, month, day): could not find function "select"
select(flights, year:day)
## Error in select(flights, year:day): could not find function "select"
select(flights, -(year:day))
## Error in select(flights, -(year:day)): could not find function "select"

rename () untuk mengganti nama variabel dan menyimpan semua variabel yang tidak disebutkan secara eksplisit:

rename(flights, tail_num = tailnum)
## Error in rename(flights, tail_num = tailnum): could not find function "rename"

memindahkan beberapa variabel di awal dataframe

select(flights, time_hour, air_time, everything())
## Error in select(flights, time_hour, air_time, everything()): could not find function "select"

menambahkan variabel baru dengan mutate ()

mutate(flights_sml,
  gain = dep_delay - arr_delay,
  hours = air_time / 60,
  gain_per_hour = gain / hours
)
## Error in mutate(flights_sml, gain = dep_delay - arr_delay, hours = air_time/60, : could not find function "mutate"

transmute() untuk menyimpan variabel baru

transmute(flights,
  gain = dep_delay - arr_delay,
  hours = air_time / 60,
  gain_per_hour = gain / hours
)
## Error in transmute(flights, gain = dep_delay - arr_delay, hours = air_time/60, : could not find function "transmute"

modular kumpulan data penerbangan, jam dan menit dari dep_time

transmute(flights,
  dep_time,
  hour = dep_time %/% 100,
  minute = dep_time %% 100
)
## Error in transmute(flights, dep_time, hour = dep_time%/%100, minute = dep_time%%100): could not find function "transmute"