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

Tambahkan komentar

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