Dataframe

Dataframe layaknya sebuah tabel di Ms Excel, terdiri dari baris dan kolom dengan nama masing-masing kolom berbeda. Apa bedanya dengan matriks? Matriks hanya bisa menyimpan tipe data yang sama, numeric atau character seluruhnya. Pada dataframe, masing-masing kolom boleh memiliki tipe data yang berbeda. Dataframe seperti umumnya bentuk tabel yang sering kita gunakan.

Contoh dataframe yang ada di dalam R salah satunya adalah mtcars.

data.frame(mtcars)
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2

Umumnya ketika Anda melakukan analisis data, maka data yang Anda gunakan adalah berupa tabel. Di dalam R sebuah tabel yang terdiri dari baris dan kolom disebut dataframe atau data.frame. Baris di dataframe disebut observation dan kolom disebut variable

Untuk membuat sebuah dataframe Anda dapat menggunakan fungsi data.frame(). Misalnya Anda akan membuat sebuah dataframe bernama data1 yang berisi 5 observation dan 2 variable. Variable pertama bernama x1 berisi sebuah vector numeric dengan nilai {1, 3, 2, 6, 4} dan variable kedua bernama v2 berisi vector character dengan nilai {"a", "A", "c", "d", "E"}. Anda dapat membuat vector x1 dan v1 terlebih dahulu menggunakan fungsi c() (atau fungsi lain yang sesuai untuk membuat vector). Kemudian membuat dataframe dari vector tersebut. Perhatikan contoh berikut ini.

x1 <- c(1, 3, 2, 6, 4)
v1 <- c("a", "A", "c", "d", "E")
data1 <- data.frame(x1 = x1, v1 = v1)

Anda dapat melihat dataframe yang sudah dibuat tersebut dengan memanggil nama objek dataframe.

data1
##   x1 v1
## 1  1  a
## 2  3  A
## 3  2  c
## 4  6  d
## 5  4  E

Perhatian! Ketika Anda membuat sebuah dataframe yang berisi sebuah variable character pada R dengan versi 3.6.3 atau sebelumnya, maka secara otomatis variable dari vector character tersebut akan dirubah menjadi variable factor (2.5). Hal ini terjadi karena fungsi data.frame() mempunyai sebuah argumen stringsAsFactors = TRUE. Pada R versi 4.0.0 atau lebih baru, variable dari vector character akan tetap dijadikan sebuah variable character karena argumen stringsAsFactors = FALSE. Tentu saja Anda dapat merubahnya dengan menambahkan argumen tersebut ketika Anda membuat dataframe.

data1 <- data.frame(x1 = x1, v1 = v1, stringsAsFactors = TRUE) # atau TRUE
data1
##   x1 v1
## 1  1  a
## 2  3  A
## 3  2  c
## 4  6  d
## 5  4  E

Untuk mengetahui ukuran dimensi sebuah dataframe Anda dapat gunakan fungsi dim()

dim(data1)
## [1] 5 2

Hasil dari fungsi dim() untuk dataframe atau matrix adalah sebuah vector dengan elemen pertama adalah banyaknya observation, sedangkan elemen kedua adalah banyaknya variable. Pada contoh di atas berarti dataframe data1 memiliki 5 observation dan 2 variable.

Untuk mengetahui struktur dari sebuah dataframe Anda dapat gunakan fungsi str() (str-ucture). Dengan fungsi ini Anda dapat memperoleh informasi lebih lengkap dari sebuah dataframe seperti banyaknya observation dan variable, nama-nama variable, tipe variable, dan beberapa nilai baris pertama untuk masing-masing variable.

str(data1)
## 'data.frame':    5 obs. of  2 variables:
##  $ x1: num  1 3 2 6 4
##  $ v1: Factor w/ 5 levels "a","A","c","d",..: 1 2 3 4 5

Dari hasil di atas Anda dapat ketahui bahwa objek data1 adalah sebuah dataframe berukuran 5 observation (obs.) dan 2 variable. Nama variable yang ada adalah x1 dan v1. Variable x1 adalah variable bertipe numeric, sedangkan v1 adalah variable character alias factor. Nilai pada baris pertama dataframe data1 untuk variable x1 adalah 1 dan variable v1 adalah "a". Nilai "a" dikodekan sebagai 1, "A" dikodekan sebagai 2, "c" dikodekan sebagai 3, dan seterusnya.

Selanjutnya untuk mengambil nilai sebuah variable dari sebuah dataframe dapat menggunakan tanda dollar ($) atau menggunakan indeks. Perhatikan contoh berikut.

# Menggunakan tanda dollar
data1$x1
## [1] 1 3 2 6 4
# Menggunakan indeks urutan posisi variable
data1[, 1]
## [1] 1 3 2 6 4
# Menggunakan nama variable pada indeks
data1[, "x1"]
## [1] 1 3 2 6 4

Untuk membuat variable baru Anda dapat menggunakan cara yang hampir sama dan menggunakan assignment. Berikut ini kita akan membuat variable baru bernama x2 berupa variable numeric.

data1$x2 <- 1:5
data1
##   x1 v1 x2
## 1  1  a  1
## 2  3  A  2
## 3  2  c  3
## 4  6  d  4
## 5  4  E  5
str(data1)
## 'data.frame':    5 obs. of  3 variables:
##  $ x1: num  1 3 2 6 4
##  $ v1: Factor w/ 5 levels "a","A","c","d",..: 1 2 3 4 5
##  $ x2: int  1 2 3 4 5

Tipe num artinya variable tersebut adalah double dan tipe int adalah tipe integer.

Kemudian kita buat variable baru bernama x3 yang merupakan penjumlahan dari variable x1 dan x2.

data1$x3 <- data1$x1 + data1$x2
str(data1)
## 'data.frame':    5 obs. of  4 variables:
##  $ x1: num  1 3 2 6 4
##  $ v1: Factor w/ 5 levels "a","A","c","d",..: 1 2 3 4 5
##  $ x2: int  1 2 3 4 5
##  $ x3: num  2 5 5 10 9