Cara memperbaiki di r: indeks di luar batas


Kesalahan umum yang mungkin Anda temui di R adalah:

 Error in x[, 4]: subscript out of bounds

Kesalahan ini terjadi ketika Anda mencoba mengakses kolom atau baris matriks yang tidak ada.

Tutorial ini menunjukkan langkah-langkah tepat yang dapat Anda ambil untuk mengatasi kesalahan ini, dengan menggunakan matriks berikut sebagai contoh:

 #make this example reproducible
set. seeds (0)

#create matrix with 10 rows and 3 columns
x = matrix(data = sample. int (100, 30), nrow = 10, ncol = 3)

#print matrix
print (x)

      [,1] [,2] [,3]
 [1,] 14 51 96
 [2,] 68 85 44
 [3,] 39 21 33
 [4,] 1 54 35
 [5,] 34 74 70
 [6,] 87 7 86
 [7,] 43 73 42
 [8,] 100 79 38
 [9,] 82 37 20
[10,] 59 92 28

Contoh #1: indeks di luar jangkauan (dengan garis)

Kode berikut mencoba mengakses baris ke-11 dari matriks, namun ternyata tidak ada:

 #attempt to display 11th row of matrix
x[11, ]

Error in x[11, ]: subscript out of bounds

Karena baris ke-11 dari matriks tidak ada, kita mendapatkan kesalahan indeks di luar batas .

Jika kita tidak mengetahui berapa banyak baris yang ada dalam matriks, kita dapat menggunakan fungsi nrow() untuk mencari tahu:

 #display number of rows in matrix
nrow(x)

[1] 10

Kita dapat melihat bahwa hanya ada 10 baris dalam matriks. Jadi, kita hanya bisa menggunakan angka yang kurang dari atau sama dengan 10 untuk mengakses baris.

Misalnya, kita dapat menggunakan sintaks berikut untuk menampilkan baris ke-10 matriks:

 #display 10th row of matrix
x[10, ]

[1] 59 92 28

Contoh #2: indeks di luar jangkauan (dengan kolom)

Kode berikut mencoba mengakses kolom ke-4 matriks, namun ternyata tidak ada:

 #attempt to display 4th column of matrix
x[, 4]

Error in x[, 4]: subscript out of bounds

Karena kolom ke-4 matriks tidak ada, kita mendapatkan kesalahan indeks di luar batas .

Jika kita tidak mengetahui berapa banyak kolom yang terdapat dalam matriks, kita dapat menggunakan fungsi ncol() untuk mencari tahu:

 #display number of columns in matrix
ncol(x)

[1] 3

Kita melihat bahwa hanya ada 3 kolom dalam matriks. Jadi, kita hanya bisa menggunakan angka yang kurang dari atau sama dengan 3 untuk mengakses kolom.

Misalnya, kita dapat menggunakan sintaks berikut untuk menampilkan kolom ke-3 dari matriks:

 #display 3rd column of matrix
x[, 3]

[1] 96 44 33 35 70 86 42 38 20 28

Contoh #3: indeks di luar jangkauan (baris dan kolom)

Kode berikut mencoba mengakses nilai baris ke-11 dan kolom ke-4 dari matriks, yang tidak ada:

 #attempt to display value in 11th row and 4th column
x[11, 4]

Error in x[11, 4]: subscript out of bounds

Karena baris ke-11 dan kolom ke-4 dari matriks tidak ada, kita mendapatkan kesalahan indeks di luar batas .

Jika kita tidak mengetahui berapa banyak baris dan kolom dalam matriks, kita dapat menggunakan fungsi dim() untuk mengetahuinya:

 #display number of rows and columns in matrix
dim(x)

[1] 10 3

Kita melihat bahwa hanya ada 10 baris dan 3 kolom dalam matriks. Jadi, kita hanya bisa menggunakan angka yang kurang dari atau sama dengan nilai tersebut saat mengakses baris dan kolom.

Misalnya, kita dapat menggunakan sintaks berikut untuk menampilkan nilai pada baris ke-10 dan kolom ke-3 matriks:

 #display value in 10th row and 3rd column of matrix
x[10, 3]

[1] 28

Sumber daya tambahan

Tutorial berikut menjelaskan cara mengatasi kesalahan umum lainnya di R:

Cara memperbaiki di R: Nama tidak sesuai dengan nama sebelumnya
Cara memperbaikinya di R: panjang benda yang lebih panjang bukan kelipatan panjang benda yang lebih pendek
Cara memperbaikinya di R: kontras hanya dapat diterapkan pada faktor dengan 2 level atau lebih

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *