Cara memperbaiki di r: penggantian memiliki panjang nol
Kesalahan yang mungkin Anda temui di R adalah:
Error in x[1] = x[0]: replacement has length zero
Kesalahan ini terjadi ketika Anda mencoba mengganti nilai dalam vektor dengan nilai lain yang “memiliki panjang nol”, artinya nilai tersebut tidak ada.
Tutorial ini menjelaskan dengan tepat cara memperbaiki kesalahan ini.
Bagaimana cara mereproduksi kesalahan tersebut
Misalkan kita membuat vektor berikut dengan 10 nilai di R:
data = c(1, 4, 5, 5, 7, 9, 12, 14, 15, 17)
Sekarang misalkan kita mencoba menggunakan perulangan for() berikut untuk mengalikan setiap nilai dalam vektor dengan nilai sebelumnya:
for (i in 1: length (data)) {
data[i] = data[i] * data[i-1]
}
Error in data[i] <- data[i] * data[i - 1]: replacement has length zero
Kami menerima kesalahan ” penggantian memiliki panjang nol ” karena pada loop pertama kami mencoba melakukan perkalian berikut:
- data[1] * data[0]
Karena indeks R dimulai dari 1, nilai data[0] tidak ada.
Kita dapat memeriksanya dengan mencoba mencetak nilai yang terletak pada posisi 0 dalam vektor:
print (data[0])
numeric(0)
Hasilnya adalah vektor digital dengan panjang 0 – dengan kata lain tidak ada.
Bagaimana cara memperbaiki kesalahan tersebut
Cara untuk memperbaiki kesalahan ini adalah dengan menggunakan loop for() yang tidak mencoba mengakses nilai vektor yang tidak ada.
Dalam contoh kita, kita dapat memperbaiki kesalahan ini dengan memulai perulangan for pada posisi indeks 2, bukan pada posisi 1:
for (i in 2: length (data)) {
data[i] = data[i] * data[i-1]
}
#view updated vector
data
[1] 1 4 20 100 700 6300 75600
[8] 1058400 15876000 269892000
Perhatikan bahwa kami tidak menerima kesalahan karena kami tidak pernah mencoba mengakses posisi indeks dalam vektor yang tidak ada.
Sumber daya tambahan
Tutorial berikut menjelaskan cara memperbaiki kesalahan umum lainnya di R:
Cara memperbaikinya: kondisi memiliki panjang > 1 dan hanya elemen pertama yang akan digunakan
Cara Memperbaiki : Ganti ada garis X, data ada Y
Cara memperbaiki: argumen non-numerik dari operator biner
Cara memperbaikinya: dim(X) harus mempunyai panjang positif
Cara memperbaiki: kesalahan dalam memilih argumen yang tidak digunakan