R Data Frame: Cara Membuat, Menambahkan, Memilih & Subset

Apa itu Bingkai Data?

A bingkai data adalah daftar vektor-vektor yang panjangnya sama. Matriks hanya berisi satu tipe data, sedangkan bingkai data menerima tipe data berbeda (numerik, karakter, faktor, dll.).

Cara Membuat Bingkai Data

Kita dapat membuat kerangka data di R dengan meneruskan variabel a,b,c,d ke dalam fungsi data.frame(). Kita dapat membuat kerangka data dan memberi nama kolom dengan name() dan cukup menentukan nama variabelnya.

data.frame(df, stringsAsFactors = TRUE)

kasus:

  • df: Ini bisa berupa matriks untuk diubah sebagai bingkai data atau kumpulan variabel untuk digabungkan
  • stringAsFactors: Mengonversi string menjadi faktor secara default

Kita dapat membuat kerangka data di R untuk kumpulan data pertama kita dengan menggabungkan empat variabel dengan panjang yang sama.

# Create a, b, c, d variables
a <- c(10,20,30,40)
b <- c('book', 'pen', 'textbook', 'pencil_case')
c <- c(TRUE,FALSE,TRUE,FALSE)
d <- c(2.5, 8, 10, 7)
# Join the variables to create a data frame
df <- data.frame(a,b,c,d)
df

Keluaran:

##     a         b     c     d
## 1  10        book  TRUE   2.5
## 2  20         pen  FALSE  8.0
## 3  30    textbook  TRUE   10.0
## 4  40 pencil_case  FALSE  7.0

Kita dapat melihat header kolom memiliki nama yang sama dengan variabelnya. Kita dapat mengubah nama kolom di R dengan fungsi nama(). Periksa contoh R membuat kerangka data di bawah ini:

# Name the data frame
names(df) <- c('ID', 'items', 'store', 'price')
df

Keluaran:

##   ID       items store price
## 1 10        book  TRUE   2.5
## 2 20         pen FALSE   8.0
## 3 30    textbook  TRUE  10.0
## 4 40 pencil_case FALSE   7.0
# Print the structure
str(df)

Keluaran:

## 'data.frame':    4 obs. of  4 variables:
##  $ ID   : num  10 20 30 40
##  $ items: Factor w/ 4 levels "book","pen","pencil_case",..: 1 2 4 3
##  $ store: logi  TRUE FALSE TRUE FALSE
##  $ price: num  2.5 8 10 7

Secara default, bingkai data mengembalikan variabel string sebagai faktor.

Bingkai Data Iris

Dimungkinkan untuk SLICE nilai-nilai Bingkai Data. Kami memilih baris dan kolom untuk dikembalikan ke dalam kurung didahului dengan nama bingkai data.

Bingkai data terdiri dari baris dan kolom, df[A, B]. A mewakili baris dan B mewakili kolom. Kita dapat mengirisnya dengan menentukan baris dan/atau kolom.

Dari gambar 1, bagian kiri mewakili baris, dan bagian kanan adalah kolom. Perhatikan bahwa simbol : berarti untuk. Misalnya, 1:3 bermaksud memilih nilai dari 1 untuk 3.

Bingkai Data Iris

Dalam diagram di bawah ini kami menampilkan cara mengakses berbagai pilihan bingkai data:

  • Panah kuning memilih baris 1 di kolom 2
  • Panah hijau memilih baris 1 untuk 2
  • Panah merah memilih kolom 1
  • Panah biru memilih baris 1 hingga 3 dan kolom 3 untuk 4

Perhatikan bahwa, jika kita membiarkan bagian kiri kosong, R akan memilih semua baris. Analoginya, jika bagian kanan dikosongkan, R akan memilih semua kolom.

Bingkai Data Iris

Kita dapat menjalankan kode di konsol:

## Select row 1 in column 2
df[1,2]

Keluaran:

## [1] book
## Levels: book pen pencil_case textbook
## Select Rows 1 to 2
df[1:2,]

Keluaran:

##   ID items store price
## 1 10  book  TRUE   2.5
## 2 20   pen FALSE   8.0
## Select Columns 1
df[,1]

Keluaran:

## [1] 10 20 30 40
## Select Rows 1 to 3 and columns 3 to 4
df[1:3, 3:4]

Keluaran:

##   store price
## 1  TRUE   2.5
## 2 FALSE   8.0
## 3  TRUE  10.0

Dimungkinkan juga untuk memilih kolom dengan namanya. Misalnya, kode di bawah ini mengekstrak dua kolom: ID dan penyimpanan.

# Slice with columns name
df[, c('ID', 'store')]

Keluaran:

##   ID store
## 1 10  TRUE
## 2 20 FALSE
## 3 30  TRUE
## 4 40 FALSE

Tambahkan Kolom ke Bingkai Data

Anda juga dapat menambahkan kolom ke Bingkai Data. Anda perlu menggunakan simbol $ untuk menambahkan variabel kerangka data R dan menambahkan kolom ke kerangka data di R.

# Create a new vector
quantity <- c(10, 35, 40, 5)

# Add `quantity` to the `df` data frame
df$quantity <- quantity
df

Keluaran:

##   ID       items store price quantity
## 1 10        book  TRUE   2.5       10
## 2 20         pen FALSE   8.0       35
## 3 30    textbook  TRUE  10.0       40
## 4 40 pencil_case FALSE   7.0        5

Catatan: Jumlah elemen dalam vektor harus sama dengan jumlah elemen dalam bingkai data. Menjalankan pernyataan berikut untuk menambahkan kolom ke bingkai data R

quantity <- c(10, 35, 40)
# Add `quantity` to the `df` data frame
df$quantity <- quantity

Memberikan kesalahan:

Error in `

lt;-.data.frame`(`*tmp*`, quantity, value = c(10, 35, 40))
 replacement has 3 rows, data has 4

Pilih Kolom Bingkai Data

Terkadang, kita perlu menyimpan kolom dari kerangka data untuk penggunaan di masa mendatang atau melakukan operasi pada kolom. Kita dapat menggunakan tanda $ untuk memilih kolom dari kerangka data.

# Select the column ID
df$ID

Keluaran:

## [1] 1 2 3 4

Subset Bingkai Data

Di bagian sebelumnya, kami memilih seluruh kolom tanpa syarat. Apakah mungkin untuk bagian berdasarkan benar atau tidaknya kondisi tertentu.

Kami menggunakan fungsi subset().

subset(x, condition)
arguments:
- x: data frame used to perform the subset
- condition: define the conditional statement

Kami hanya ingin mengembalikan barang dengan harga di atas 10, yang dapat kami lakukan:

# Select price above 5
subset(df, subset = price > 5)

Keluaran:

ID       items store price
2 20         pen FALSE     8
3 30    textbook  TRUE    10
4 40 pencil_case FALSE     7