วิธีแก้ไข: ข้อผิดพลาดใน strsplit(unitspec, ” “): อาร์กิวเมนต์ที่ไม่มีอักขระ


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

 Error in strsplit(df$my_column, split = "1"): non-character argument 

ข้อผิดพลาดนี้มักเกิดขึ้นเมื่อคุณพยายามใช้ฟังก์ชัน strsplit() ใน R เพื่อแยกสตริง เมื่อวัตถุที่คุณทำงานด้วยไม่ใช่สตริง

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

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

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

 #create data frame
df <- data. frame (team=c('A', 'B', 'C'),
                 dots=c(91910, 14015, 120215))

#view data frame
df

  team points
1 A 91910
2 B 14015
3 C 120215

ตอนนี้ สมมติว่าเราพยายามใช้ฟังก์ชัน strsplit() เพื่อแยกค่าในคอลัมน์ “points” ตามตำแหน่งที่หมายเลข 1 ปรากฏ:

 #attempt to split values in points column
strsplit(df$points, split="1")

Error in strsplit(df$points, split = "1"): non-character argument

เราได้รับข้อผิดพลาดเนื่องจากตัวแปร “คะแนน” ไม่ใช่อักขระ

เราสามารถยืนยันสิ่งนี้ได้โดยการตรวจสอบคลาสของตัวแปรนี้:

 #display class of "points" variable
class(df$points)

[1] "digital"

เราจะเห็นได้ว่าตัวแปรนี้มีคลาสตัวเลข

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

วิธีแก้ไขข้อผิดพลาดนี้คือการใช้ as.Character() เพื่อแปลงตัวแปร “points” ให้เป็นอักขระก่อนที่จะลองใช้ฟังก์ชัน strsplit()

 #split values in points column based on where 1 appears
strsplit(as. character (df$points), split="1")

[[1]]
[1990"

[[2]]
[1] "" "40" "5" 

[[3]]
[1] "" "202" "5"

ครั้งนี้เราแบ่งแต่ละค่าในคอลัมน์ “points” ได้สำเร็จ เนื่องจากเราใช้ฟังก์ชัน as.Character() เพื่อแปลง “points” เป็นอักขระเป็นครั้งแรก

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

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

วิธีแก้ไขใน R: ชื่อไม่ตรงกับชื่อก่อนหน้า
วิธีแก้ไขใน R: มีคอลัมน์มากกว่าชื่อคอลัมน์
วิธีซ่อมแซมใน R: การแทนที่มีแถว X ข้อมูลมี Y

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

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