วิธีแก้ไข: ข้อผิดพลาดใน fun(newx[, i], …): ประเภทอาร์กิวเมนต์ ' (อักขระ)


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

 Error in sum(x): invalid 'type' (character) of argument

ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณพยายามดำเนินการทางคณิตศาสตร์ (เช่น การหาผลรวม ค่าเฉลี่ย ตัวเลข ฯลฯ) บนเวกเตอร์อักขระ

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

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

สมมติว่าเราสร้าง data frame ต่อไปนี้ใน R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
                 points=c(10, 12, 15, 20, 26, 25),
                 rebounds=c(7, 8, 8, 14, 10, 12))

#view data frame
df

  team points rebounds
1 to 10 7
2 to 12 8
3 to 15 8
4 B 20 14
5 B 26 10
6 B 25 12

ตอนนี้ สมมติว่าเราพยายามคำนวณผลรวมของคอลัมน์ “ทีม”:

 #attempt to calculate sum of values in 'team' column
sum(df$team)

Error in sum(df$team): invalid 'type' (character) of argument

เราได้รับข้อผิดพลาดเนื่องจากคอลัมน์ “ทีม” เป็นคอลัมน์อักขระ

เราสามารถยืนยันสิ่งนี้ได้โดยใช้ฟังก์ชัน class() :

 #view class of 'team' column
class(df$team)

[1] “character”

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

วิธีแก้ไขข้อผิดพลาดนี้คือใช้เฉพาะการดำเนินการทางคณิตศาสตร์กับเวกเตอร์ตัวเลขเท่านั้น

ตัวอย่างเช่น เราสามารถใช้ฟังก์ชัน sum() เพื่อคำนวณผลรวมของค่าในคอลัมน์ ‘points’:

 #calculate sum of values in 'points' column
sum(df$points)

[1] 108

นอกจากนี้เรายังสามารถคำนวณผลรวมของค่าคะแนนโดยจัดกลุ่มตามทีม:

 #calculate sum of points, grouped by team
aggregate(points ~ team, df, sum)

  team points
1 to 37
2 B 71

เรายังคำนวณผลรวมของคะแนน และ ค่ารีบาวด์ โดยจัดกลุ่มตามทีมได้:

 #calculate sum of points and sum of rebounds, grouped by team
aggregate(.~team, df, sum)

  team points rebounds
1 A 37 23
2 B 71 36

โปรดทราบว่าเราไม่ได้รับข้อผิดพลาดในการดำเนินการใดๆ เหล่านี้ เนื่องจากเราเพียงพยายามคำนวณผลรวมของตัวแปรตัวเลขเท่านั้น

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

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

วิธีแก้ไข: เงื่อนไขมีความยาว > 1 และระบบจะใช้เฉพาะองค์ประกอบแรกเท่านั้น
วิธีแก้ไข: อาร์กิวเมนต์ที่ไม่ใช่ตัวเลขของตัวดำเนินการไบนารี
วิธีแก้ไข: dim(X) ต้องมีความยาวเป็นค่าบวก
วิธีแก้ไข: ข้อผิดพลาดในการเลือกอาร์กิวเมนต์ที่ไม่ได้ใช้

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

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