Cara memperbaikinya di r: argumen “tidak” hilang, tanpa default
Kesalahan yang mungkin Anda temui di R adalah:
Error in ifelse(df$team == "B", "Boston"): argument "no" is missing, with no default
Kesalahan ini terjadi ketika Anda menggunakan fungsi ifelse() di R tetapi lupa menyertakan argumen ketiga untuk menentukan nilai yang harus dikembalikan jika pengujian logika menghasilkan false.
Tutorial ini menjelaskan dengan tepat cara memperbaiki kesalahan ini.
Bagaimana cara mereproduksi kesalahan tersebut
Misalkan kita memiliki bingkai data berikut di R:
#create data frame df <- data. frame (team=c('B', 'B', 'B', 'B', 'C', 'C', 'C', 'D'), points=c(12, 22, 35, 34, 20, 28, 30, 18), assists=c(4, 10, 11, 12, 12, 8, 6, 10)) #view data frame df team points assists 1 B 12 4 2 B 22 10 3 B 35 11 4 B 34 12 5 C 20 12 6 C 28 8 7 C 30 6 8 D 18 10
Sekarang misalkan kita mencoba menggunakan fungsi ifelse() untuk membuat kolom baru bernama city yang berisi “Boston” jika nilai di kolom tim sama dengan “B”:
#attempt to create new column with team city
df$city <- ifelse(df$team == ' B ', ' Boston ')
Error in ifelse(df$team == "B", "Boston"):
argument "no" is missing, with no default
Kami menerima kesalahan karena kami gagal memberikan argumen ketiga ke fungsi ifelse() yang menentukan nilai yang harus kami kembalikan jika nilai di kolom tim tidak sama dengan ‘B’.
Bagaimana cara memperbaiki kesalahan tersebut
Cara untuk memperbaiki kesalahan ini adalah dengan memberikan argumen ketiga ke fungsi ifelse() yang menentukan nilai yang harus kita kembalikan jika nilai di kolom tim tidak sama dengan ‘B’.
Sintaks berikut menunjukkan cara melakukan ini:
#create new column with team city
df$city <- ifelse(df$team == ' B ', ' Boston ', ' Other ')
#view updated data frame
df
team points assists city
1 B 12 4 Boston
2 B 22 10 Boston
3 B 35 11 Boston
4 B 34 12 Boston
5 C 20 12 Other
6 C 28 8 Other
7 C 30 6 Other
8 D 18 10 Other
Perhatikan bahwa kami tidak menerima kesalahan apa pun kali ini karena kami memberikan argumen ketiga ke fungsi ifelse() .
Dalam contoh ini, fungsi ifelse() mengembalikan nilai “Boston” jika nilai di kolom tim sama dengan “B” atau nilai “Lainnya” jika nilai di kolom tim adalah nilai lain.
Sumber daya tambahan
Tutorial berikut menjelaskan cara memperbaiki kesalahan umum lainnya di R:
Cara memperbaikinya di R: NA yang diperkenalkan dengan paksaan
Cara memperbaiki di R: indeks di luar batas
Cara memperbaikinya di R: panjang benda yang lebih panjang bukan kelipatan panjang benda yang lebih pendek
Cara memperbaiki di R: jumlah elemen yang akan diganti bukan kelipatan dari panjang penggantian