วิธีแก้ไขใน r: อาร์กิวเมนต์ "ไม่" หายไปโดยไม่มีค่าเริ่มต้น


ข้อผิดพลาดที่คุณอาจพบใน R คือ:

 Error in ifelse(df$team == "B", "Boston"): 
  argument "no" is missing, with no default

ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณใช้ฟังก์ชัน ifelse() ใน R แต่ลืมใส่อาร์กิวเมนต์ที่สามเพื่อระบุค่าที่ควรส่งคืนหากการทดสอบลอจิกส่งคืนค่าเท็จ

บทช่วยสอนนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดนี้อย่างชัดเจน

วิธีการทำซ้ำข้อผิดพลาด

สมมติว่าเรามี data frame ต่อไปนี้ใน 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

ตอนนี้ สมมติว่าเราลองใช้ฟังก์ชัน ifelse() เพื่อสร้างคอลัมน์ใหม่ที่เรียกว่า city ซึ่งมี “Boston” หากค่าในคอลัมน์ ทีม เท่ากับ “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

เราได้รับข้อผิดพลาดเนื่องจากเราไม่สามารถระบุอาร์กิวเมนต์ที่สามให้กับฟังก์ชัน ifelse() ที่ระบุค่าที่เราควรส่งคืนหากค่าในคอลัมน์ ทีม ไม่เท่ากับ ‘B’

วิธีการแก้ไขข้อผิดพลาด

วิธีแก้ไขข้อผิดพลาดนี้คือเพียงใส่อาร์กิวเมนต์ที่สามให้กับฟังก์ชัน ifelse() ที่ระบุค่าที่เราควรส่งคืนหากค่าในคอลัมน์ ทีม ไม่เท่ากับ ‘B’

ไวยากรณ์ต่อไปนี้แสดงวิธีการทำเช่นนี้:

 #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

โปรดทราบว่าเราไม่ได้รับข้อผิดพลาดใดๆ ในครั้งนี้ เนื่องจากเราได้ระบุอาร์กิวเมนต์ที่สามให้กับฟังก์ชัน ifelse()

ในตัวอย่างนี้ ฟังก์ชัน ifelse() จะส่งกลับค่า “Boston” หากค่าในคอลัมน์ ทีม เท่ากับ “B” หรือค่า “Other” หากค่าในคอลัมน์ ทีม เป็นอย่างอื่น

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่น ๆ ใน R:

วิธีแก้ไขใน R: NAs ที่ถูกบังคับโดยการบังคับ
วิธีซ่อมแซมใน R: ดัชนีอยู่นอกขอบเขต
วิธีแก้ไขใน R: ความยาวของวัตถุที่ยาวกว่าไม่ใช่ผลคูณของความยาวของวัตถุที่สั้นกว่า
วิธีการซ่อมแซมใน R: จำนวนองค์ประกอบที่จะเปลี่ยนไม่ใช่ผลคูณของความยาวในการเปลี่ยน

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *