วิธีแก้ไข: ข้อผิดพลาดใน 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